Areas of interest
News and inspiration within Subsuppliers
New suppliers within Subsuppliers
Error executing template "Designs/exhibition_site/QueryPublisher/partials/mch365-exhibitor-item.cshtml" System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Co3.MCH.Website.Frontend.Repositories.BaseRepository.GetAssetIds(Profile profile, String type, String cacheKey, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\BaseRepository.cs:line 58 at Co3.MCH.Website.Frontend.Repositories.ContactPersonRepository.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\ContactPersonRepository.cs:line 38 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 148 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersonProducts(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 444 at Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct.get_ContactPersons() in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Models\Frontend\Ecommerce\ProfileProduct.cs:line 58 at CompiledRazorTemplates.Dynamic.RazorEngine_843864b48a3d4623a17fee01fbf37c0d.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\QueryPublisher\partials\mch365-exhibitor-item.cshtml:line 27 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()1 @using Co3.Espresso.Website.Services 2 @using Co3.MCH.Data.Models.MCH365 3 @using Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce 4 @using Dynamicweb 5 @using ProductService = Co3.MCH.Website.Frontend.Services.Ecommerce.ProductService 6 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct> 7 8 @{ 9 bool hasPresentation = Model.HasPresentation; 10 bool companyBookMeeting = Model.Contact.BookMeeting; 11 bool companyDirectContact = Model.Contact.DirectContact; 12 string companyEmail = Model.Company.Email; 13 IEnumerable<BoothInfo> booths = Model.Booths; 14 15 List<ContactPersonProduct> contactPersons; 16 17 string profileText; 18 19 20 if (hasPresentation) 21 { 22 contactPersons = Model.Presentation.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 23 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Presentation.DescriptionFormatted, 650); 24 } 25 else 26 { 27 contactPersons = Model.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 28 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Company.DescriptionFormatted, 650); 29 } 30 31 string listViewMode = string.IsNullOrEmpty(Context.Current.Session["ListViewMode"]?.ToString()) ? "expanded" : Context.Current.Session["ListViewMode"]?.ToString(); 32 if (listViewMode == "condensed") 33 { 34 <div data-listViewMode="@listViewMode" class="w-100 bg-ultralight border-radius mt-half e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 35 <div class="e-productlist-item-container container-fluid h-100"> 36 <div class="row h-100"> 37 <div class="col-12 p-1 mch365-productlist-item-content-wrapper item-condensed flex-row"> 38 <div class="item-condensed-title"> 39 <div class="d-flex mr-3"> 40 <div class="condensed-list-logo mr-1"> 41 @if (Model?.Company?.Logo != null) 42 { 43 string logoImage = Model.Company.Logo; 44 string companyBackgroundColor = Model.Company.BrandColor; 45 string noCompanyInfo = ""; 46 string textLight = "e-text-light"; 47 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 48 { 49 noCompanyInfo = "bg-light"; 50 textLight = "text-muted"; 51 } 52 53 string noLogoBackground = ""; 54 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 55 { 56 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 57 } 58 59 <div class="e-productlist-item-image-container @noCompanyInfo mb-0" @noLogoBackground> 60 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 61 @{ 62 if (string.IsNullOrEmpty(logoImage)) 63 { 64 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 65 } 66 else 67 { 68 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 69 } 70 } 71 72 </a> 73 </div> 74 } 75 </div> 76 <div> 77 <h4 class="mb-0 font-weight-extrabold line-clamp-1">@Model.Company.Name</h4> 78 <p class="small line-height-sm mb-0 mt-1 line-clamp-2"> 79 @profileText 80 </p> 81 </div> 82 </div> 83 </div> 84 <div class="item-condensed-booth"> 85 @if (booths != null) 86 { 87 if (booths.Count() == 1) 88 { 89 BoothInfo booth = booths.FirstOrDefault(); 90 if (booth.Hall != null && booth.Booth != null) 91 { 92 <p class="small mb-0"> 93 <small>@Translate("MCH365 - Profile booth - Text", "Stand")</small> 94 </p> 95 <h4 class="mt-half mb-0 font-weight-extrabold mr-xl-2" style="white-space: nowrap"> 96 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number </span> 97 </h4> 98 } 99 } 100 else 101 { 102 <div class="align-items-baseline d-inline-flex flex-wrap justify-content-end justify-content-xl-start mb-1"> 103 <p class="small w-100 mb-0"> 104 <small>@Translate("MCH365 - Profile booths - Text", "Stande")</small> 105 </p> 106 @foreach (BoothInfo booth in booths) 107 { 108 if (booth.Hall != null && booth.Booth != null) 109 { 110 <h4 class="font-weight-extrabold mb-0 ml-1 ml-xl-0 mr-xl-1 mt-half text-muted" style="white-space: nowrap"> 111 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 112 </h4> 113 } 114 } 115 </div> 116 } 117 } 118 </div> 119 <div class="item-condensed-subasset"> 120 @if (Model.SubAssetInfo.Count > 0) 121 { 122 <p class="mb-0 font-weight-bold"> 123 <small>@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</small> 124 </p> 125 <p class="small mb-0 mt-half font-weight-normal d-none d-md-block">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 126 } 127 </div> 128 <div class="item-condensed-contacts"> 129 @if (contactPersons.Any()) 130 { 131 <div class="mt-auto"> 132 <p class="d-block mb-0 text-right"> 133 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 134 </p> 135 </div> 136 } 137 </div> 138 <div class="item-condensed-options"> 139 @if (!string.IsNullOrEmpty(companyEmail)) 140 { 141 <div class="d-flex small align-items-center justify-content-end mch365-custom-productlist-cta"> 142 @if (companyDirectContact) 143 { 144 <span class="mch365-custom-productlist-cta-icon"> 145 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")" alt="" role="presentation"/> 146 </span> 147 } 148 @if (companyBookMeeting) 149 { 150 <span class="mch365-custom-productlist-cta-icon"> 151 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")" alt="" role="presentation"/> 152 </span> 153 } 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 </div> 160 </div> 161 } 162 else 163 { 164 <div class="w-100 bg-ultralight border-radius my-1 e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 165 <div class="e-productlist-item-container container-fluid h-100"> 166 <div class="row h-100"> 167 <div class="col-9 col-lg-7 col-xl-8 p-1 p-lg-2 mch365-productlist-item-content-wrapper"> 168 <h3 class="mb-0 font-weight-extrabold">@Model.Company.Name</h3> 169170 @if (booths != null) 171 { 172 if (booths.Count() == 1) 173 { 174 BoothInfo booth = booths.FirstOrDefault(); 175 if (booth.Hall != null && booth.Booth != null) 176 { 177 <h3 class="mt-0 mb-1 font-weight-extrabold"> 178 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 179 </h3> 180 } 181 } 182 else 183 { 184 <div class="d-inline-flex flex-wrap mb-1"> 185 @foreach (BoothInfo booth in booths) 186 { 187 if (booth.Hall != null && booth.Booth != null) 188 { 189 <h3 class="mt-0 mb-0 font-weight-extrabold mr-1" style="white-space: nowrap"> 190 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 191 </h3> 192 } 193 } 194 </div> 195 } 196 } 197198 <p class="small line-height-sm mb-2 mt-1 line-clamp-10"> 199 @profileText 200 </p> 201202203 @if (Model.SubAssetInfo.Count > 0) 204 { 205 <span class="mch365-productlist-item-bulletin-wrapper mt-auto"> 206 <h4 class="mb-0">@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</h4> 207 <p class="small mb-0 mt-half font-weight-normal">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 208 </span> 209 } 210211 </div> 212 <div class="col-3 col-lg-5 col-xl-4 bg-light p-1 p-lg-2 mch365-productlist-item-sidebar-wrapper"> 213214 @if (Model?.Company?.Logo != null) 215 { 216 string logoImage = Model.Company.Logo; 217 string companyBackgroundColor = Model.Company.BrandColor; 218219 string noCompanyInfo = ""; 220 string textLight = "e-text-light"; 221222 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 223 { 224 noCompanyInfo = "bg-light"; 225 textLight = "text-muted"; 226 } 227228 string noLogoBackground = ""; 229 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 230 { 231 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 232 } 233234 <div class="e-productlist-item-image-container @noCompanyInfo" @noLogoBackground> 235 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 236 @{ 237 if (string.IsNullOrEmpty(logoImage)) 238 { 239 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 240 } 241 else 242 { 243 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 244 } 245 } 246247 </a> 248 </div> 249 } 250251 @if (!string.IsNullOrEmpty(companyEmail)) 252 { 253 <div class="small flex-column mb-2"> 254 @if (companyDirectContact) 255 { 256 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 257 <span class="mch365-custom-productlist-cta-icon"> 258 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" alt="" role="presentation"/> 259 </span><span>@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")</span> 260 </span> 261 } 262 @if (companyBookMeeting) 263 { 264 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 265 <span class="mch365-custom-productlist-cta-icon"> 266 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" alt="" role="presentation"/> 267 </span><span>@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")</span> 268 </span> 269 } 270 </div> 271 } 272 @if (contactPersons.Any()) 273 { 274 <div class="mt-auto"> 275 <ul class="mch365-productlist-custom-contact-persons"> 276277 @foreach (ContactPersonProduct contactPerson in contactPersons.OrderBy(cp => cp.Sort).Take(3)) 278 { 279 string noImageClasses = ""; 280 string contactPersonImage = contactPerson.Image; 281 if (string.IsNullOrEmpty(contactPersonImage)) 282 { 283 contactPersonImage = "/Files/Templates/Designs/mch365_admin/_assets/img/mch365-noimage.svg"; 284 noImageClasses = "bg-white"; 285 } 286287 <li class="animate animate-triggered fadeIn animate-show @noImageClasses" style="background-image: url('/admin/public/getimage.ashx?Image=@contactPersonImage&Width=100&Height=100&Format=webp&Quality=75&Crop=0');" title="@contactPerson.Name"></li> 288 } 289290 @if (contactPersons.Count() > 3) 291 { 292 <li class="mch365-productlist-custom-contact-persons-add"> </li> 293 } 294295 </ul> 296 <p class="d-block mb-0 mt-1 small text-center"> 297 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 298 </p> 299 </div> 300 } 301 </div> 302 </div> 303 </div> 304 </div> 305 } 306 }
Error executing template "Designs/exhibition_site/QueryPublisher/partials/mch365-exhibitor-item.cshtml" System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Co3.MCH.Website.Frontend.Repositories.BaseRepository.GetAssetIds(Profile profile, String type, String cacheKey, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\BaseRepository.cs:line 58 at Co3.MCH.Website.Frontend.Repositories.ContactPersonRepository.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\ContactPersonRepository.cs:line 38 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 148 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersonProducts(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 444 at Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct.get_ContactPersons() in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Models\Frontend\Ecommerce\ProfileProduct.cs:line 58 at CompiledRazorTemplates.Dynamic.RazorEngine_843864b48a3d4623a17fee01fbf37c0d.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\QueryPublisher\partials\mch365-exhibitor-item.cshtml:line 27 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()1 @using Co3.Espresso.Website.Services 2 @using Co3.MCH.Data.Models.MCH365 3 @using Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce 4 @using Dynamicweb 5 @using ProductService = Co3.MCH.Website.Frontend.Services.Ecommerce.ProductService 6 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct> 7 8 @{ 9 bool hasPresentation = Model.HasPresentation; 10 bool companyBookMeeting = Model.Contact.BookMeeting; 11 bool companyDirectContact = Model.Contact.DirectContact; 12 string companyEmail = Model.Company.Email; 13 IEnumerable<BoothInfo> booths = Model.Booths; 14 15 List<ContactPersonProduct> contactPersons; 16 17 string profileText; 18 19 20 if (hasPresentation) 21 { 22 contactPersons = Model.Presentation.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 23 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Presentation.DescriptionFormatted, 650); 24 } 25 else 26 { 27 contactPersons = Model.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 28 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Company.DescriptionFormatted, 650); 29 } 30 31 string listViewMode = string.IsNullOrEmpty(Context.Current.Session["ListViewMode"]?.ToString()) ? "expanded" : Context.Current.Session["ListViewMode"]?.ToString(); 32 if (listViewMode == "condensed") 33 { 34 <div data-listViewMode="@listViewMode" class="w-100 bg-ultralight border-radius mt-half e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 35 <div class="e-productlist-item-container container-fluid h-100"> 36 <div class="row h-100"> 37 <div class="col-12 p-1 mch365-productlist-item-content-wrapper item-condensed flex-row"> 38 <div class="item-condensed-title"> 39 <div class="d-flex mr-3"> 40 <div class="condensed-list-logo mr-1"> 41 @if (Model?.Company?.Logo != null) 42 { 43 string logoImage = Model.Company.Logo; 44 string companyBackgroundColor = Model.Company.BrandColor; 45 string noCompanyInfo = ""; 46 string textLight = "e-text-light"; 47 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 48 { 49 noCompanyInfo = "bg-light"; 50 textLight = "text-muted"; 51 } 52 53 string noLogoBackground = ""; 54 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 55 { 56 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 57 } 58 59 <div class="e-productlist-item-image-container @noCompanyInfo mb-0" @noLogoBackground> 60 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 61 @{ 62 if (string.IsNullOrEmpty(logoImage)) 63 { 64 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 65 } 66 else 67 { 68 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 69 } 70 } 71 72 </a> 73 </div> 74 } 75 </div> 76 <div> 77 <h4 class="mb-0 font-weight-extrabold line-clamp-1">@Model.Company.Name</h4> 78 <p class="small line-height-sm mb-0 mt-1 line-clamp-2"> 79 @profileText 80 </p> 81 </div> 82 </div> 83 </div> 84 <div class="item-condensed-booth"> 85 @if (booths != null) 86 { 87 if (booths.Count() == 1) 88 { 89 BoothInfo booth = booths.FirstOrDefault(); 90 if (booth.Hall != null && booth.Booth != null) 91 { 92 <p class="small mb-0"> 93 <small>@Translate("MCH365 - Profile booth - Text", "Stand")</small> 94 </p> 95 <h4 class="mt-half mb-0 font-weight-extrabold mr-xl-2" style="white-space: nowrap"> 96 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number </span> 97 </h4> 98 } 99 } 100 else 101 { 102 <div class="align-items-baseline d-inline-flex flex-wrap justify-content-end justify-content-xl-start mb-1"> 103 <p class="small w-100 mb-0"> 104 <small>@Translate("MCH365 - Profile booths - Text", "Stande")</small> 105 </p> 106 @foreach (BoothInfo booth in booths) 107 { 108 if (booth.Hall != null && booth.Booth != null) 109 { 110 <h4 class="font-weight-extrabold mb-0 ml-1 ml-xl-0 mr-xl-1 mt-half text-muted" style="white-space: nowrap"> 111 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 112 </h4> 113 } 114 } 115 </div> 116 } 117 } 118 </div> 119 <div class="item-condensed-subasset"> 120 @if (Model.SubAssetInfo.Count > 0) 121 { 122 <p class="mb-0 font-weight-bold"> 123 <small>@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</small> 124 </p> 125 <p class="small mb-0 mt-half font-weight-normal d-none d-md-block">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 126 } 127 </div> 128 <div class="item-condensed-contacts"> 129 @if (contactPersons.Any()) 130 { 131 <div class="mt-auto"> 132 <p class="d-block mb-0 text-right"> 133 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 134 </p> 135 </div> 136 } 137 </div> 138 <div class="item-condensed-options"> 139 @if (!string.IsNullOrEmpty(companyEmail)) 140 { 141 <div class="d-flex small align-items-center justify-content-end mch365-custom-productlist-cta"> 142 @if (companyDirectContact) 143 { 144 <span class="mch365-custom-productlist-cta-icon"> 145 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")" alt="" role="presentation"/> 146 </span> 147 } 148 @if (companyBookMeeting) 149 { 150 <span class="mch365-custom-productlist-cta-icon"> 151 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")" alt="" role="presentation"/> 152 </span> 153 } 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 </div> 160 </div> 161 } 162 else 163 { 164 <div class="w-100 bg-ultralight border-radius my-1 e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 165 <div class="e-productlist-item-container container-fluid h-100"> 166 <div class="row h-100"> 167 <div class="col-9 col-lg-7 col-xl-8 p-1 p-lg-2 mch365-productlist-item-content-wrapper"> 168 <h3 class="mb-0 font-weight-extrabold">@Model.Company.Name</h3> 169170 @if (booths != null) 171 { 172 if (booths.Count() == 1) 173 { 174 BoothInfo booth = booths.FirstOrDefault(); 175 if (booth.Hall != null && booth.Booth != null) 176 { 177 <h3 class="mt-0 mb-1 font-weight-extrabold"> 178 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 179 </h3> 180 } 181 } 182 else 183 { 184 <div class="d-inline-flex flex-wrap mb-1"> 185 @foreach (BoothInfo booth in booths) 186 { 187 if (booth.Hall != null && booth.Booth != null) 188 { 189 <h3 class="mt-0 mb-0 font-weight-extrabold mr-1" style="white-space: nowrap"> 190 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 191 </h3> 192 } 193 } 194 </div> 195 } 196 } 197198 <p class="small line-height-sm mb-2 mt-1 line-clamp-10"> 199 @profileText 200 </p> 201202203 @if (Model.SubAssetInfo.Count > 0) 204 { 205 <span class="mch365-productlist-item-bulletin-wrapper mt-auto"> 206 <h4 class="mb-0">@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</h4> 207 <p class="small mb-0 mt-half font-weight-normal">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 208 </span> 209 } 210211 </div> 212 <div class="col-3 col-lg-5 col-xl-4 bg-light p-1 p-lg-2 mch365-productlist-item-sidebar-wrapper"> 213214 @if (Model?.Company?.Logo != null) 215 { 216 string logoImage = Model.Company.Logo; 217 string companyBackgroundColor = Model.Company.BrandColor; 218219 string noCompanyInfo = ""; 220 string textLight = "e-text-light"; 221222 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 223 { 224 noCompanyInfo = "bg-light"; 225 textLight = "text-muted"; 226 } 227228 string noLogoBackground = ""; 229 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 230 { 231 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 232 } 233234 <div class="e-productlist-item-image-container @noCompanyInfo" @noLogoBackground> 235 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 236 @{ 237 if (string.IsNullOrEmpty(logoImage)) 238 { 239 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 240 } 241 else 242 { 243 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 244 } 245 } 246247 </a> 248 </div> 249 } 250251 @if (!string.IsNullOrEmpty(companyEmail)) 252 { 253 <div class="small flex-column mb-2"> 254 @if (companyDirectContact) 255 { 256 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 257 <span class="mch365-custom-productlist-cta-icon"> 258 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" alt="" role="presentation"/> 259 </span><span>@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")</span> 260 </span> 261 } 262 @if (companyBookMeeting) 263 { 264 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 265 <span class="mch365-custom-productlist-cta-icon"> 266 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" alt="" role="presentation"/> 267 </span><span>@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")</span> 268 </span> 269 } 270 </div> 271 } 272 @if (contactPersons.Any()) 273 { 274 <div class="mt-auto"> 275 <ul class="mch365-productlist-custom-contact-persons"> 276277 @foreach (ContactPersonProduct contactPerson in contactPersons.OrderBy(cp => cp.Sort).Take(3)) 278 { 279 string noImageClasses = ""; 280 string contactPersonImage = contactPerson.Image; 281 if (string.IsNullOrEmpty(contactPersonImage)) 282 { 283 contactPersonImage = "/Files/Templates/Designs/mch365_admin/_assets/img/mch365-noimage.svg"; 284 noImageClasses = "bg-white"; 285 } 286287 <li class="animate animate-triggered fadeIn animate-show @noImageClasses" style="background-image: url('/admin/public/getimage.ashx?Image=@contactPersonImage&Width=100&Height=100&Format=webp&Quality=75&Crop=0');" title="@contactPerson.Name"></li> 288 } 289290 @if (contactPersons.Count() > 3) 291 { 292 <li class="mch365-productlist-custom-contact-persons-add"> </li> 293 } 294295 </ul> 296 <p class="d-block mb-0 mt-1 small text-center"> 297 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 298 </p> 299 </div> 300 } 301 </div> 302 </div> 303 </div> 304 </div> 305 } 306 }
A. Flensborg A/S
A. Flensborg A/S specialises in the development and manufacture of electric trolleys and tow tractors for internal transport within industry, hospitals and the outdoor sector. With over 65 years of experience, A. Flensborg A/S delivers bespoke solutions that streamline workflows and create ergonomic and sustainable transport processes. All electric trolleys are developed and manufactured in Denmark, where great emphasis is placed on close collaboration with customers to ensure solutions that match specific needs – whether for warehouse handling, hospital logistics or transport in green spaces. A. Flensborg A/S combines a solid tradition of cr
Cases from Subsuppliers
- Case
15. September 2025 | AAG | Aalborg Gummivarefabrik A/S
- Case
15. September 2025 | AAG | Aalborg Gummivarefabrik A/S
- Case
15. September 2025 | AAG | Aalborg Gummivarefabrik A/S
- Case
5. September 2025 | Real Safety
Anti-slip Solutions for Denmark's Largest Bakery
Kohberg is Denmark's largest Danish and family-owned bakery and has been baking rye bread in the small Southern Jutland town of Bolderslev since the company's humble beginnings in 1969.
Today, the







