Error executing template "Designs/bloomingville/eCom/Product/espresso.cshtml"System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed outat System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()at System.Data.SqlClient.SqlDataReader.get_MetaData()at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)at Dynamicweb.Data.Database.CreateDataReader(IDbCommand command, CommandBehavior behavior)at Dynamicweb.Data.Database.CreateDataReader(CommandBuilder commandBuilder, IDbConnection connection, IDbTransaction transaction, CommandBehavior behavior, Int32 commandTimeout)at Dynamicweb.Data.Database.CreateDataReader(CommandBuilder commandBuilder, IDbConnection connection, IDbTransaction transaction, Int32 commandTimeout)at Dynamicweb.Ecommerce.Products.DetailRepository.GetInheritedDetailsBulk(List`1 productIds, String detailType)at Dynamicweb.Ecommerce.Products.DetailService.GetDetailsBulk(IEnumerable`1 products, String detailType, Boolean excludeDefaultImage)at Dynamicweb.Ecommerce.Products.DetailService.GetDetails(Product product, String detailType, Boolean excludeDefaultImage)at Co3.Espresso.Website.Services.ProductService.GetImageDetails(Product product) in C:\Projects\espresso\Co3.Espresso.Website\Services\ProductService.cs:line 143at Co3.Espresso.Website.Models.FrontEnd.Ecommerce.EspressoProduct.get_ImageDetails() in C:\Projects\espresso\Co3.Espresso.Website\Models\FrontEnd\Ecommerce\EspressoProduct.cs:line 155at CompiledRazorTemplates.Dynamic.RazorEngine_f270bb3df9a54933b834aeb9098e99f8.Execute() in E:\Dynamicweb.NET\Solutions\bloomingville.espresso4.dk\Files\Templates\Designs\bloomingville\eCom\Product\espresso.cshtml:line 119at 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.b__0(TextWriter writer)at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)at Dynamicweb.Rendering.Template.RenderRazorTemplate()ClientConnectionId:13bf5a97-a434-4605-935d-06a5cd78a45eError Number:-2,State:0,Class:11
1 @inherits Co3.Espresso.Website.TemplateBases.Paragraphs.Module 2 3 @using System.Web 4 @using Co3.Bloomingville.Website.Models.Frontend.Ecommerce 5 @using Co3.Espresso.Website.Services 6 @using Co3.Espresso.Website.Models.FrontEnd 7 @using Co3.Espresso.Website.Models.FrontEnd.Settings 8 @using Co3.Espresso.Website.Models.FrontEnd.Ecommerce 9 @using Co3.Espresso.Website.Models.FrontEnd.Handlebars 10 @using Dynamicweb.Content.Items 11 @using Dynamicweb.Ecommerce.CustomerCenter 12 @using Dynamicweb.Ecommerce.Products 13 @using Dynamicweb.Frontend 14 @using Dynamicweb.Security.UserManagement 15 @using ProductService = Co3.Espresso.Website.Services.ProductService 16 @inherits Co3.Espresso.Website.TemplateBases.Pages.PageBase 17 18 @{ 19 bool isUserAuthenticated = User.IsExtranetUserLoggedIn(); 20 BloomingvilleProduct espressoProduct = (BloomingvilleProduct) ProductService.Instance.GetEspressoProduct( 21 new ProductSettings() 22 { 23 Id = GetString("Ecom:Product.ID"), 24 VariantId = GetString("Ecom:Product.VariantID"), 25 PrimaryVariantId = GetString("Ecom:Product.DefaultVariantComboID") 26 } 27 ); 28 29 // Add auto generated relation groups fra Dynamicweb to RelatedGroups dictionary, in order to access them the same way, as the custom related product groups. 30 31 // Related product groups are rendered in this order. 32 string[] relatedGroupIds = 33 { 34 "SimilarProducts", 35 "HotRightNow", 36 "DesignersFavorite" 37 }; 38 39 string imageLifeStyle = espressoProduct.ImageLifeStyle.Large; 40 string brandLogo = string.Empty; 41 string brandText = Translate(string.Format("eCom Product - Brand {0} - Text", espressoProduct.Brand), "Modo lorem pythagoras quid quae abducas habent potius quem singulos pullum quicquid memini.An expetendum si memini est quem modo quo ut."); 42 string brandPersonName = string.Empty; 43 string brandPersonTitle = string.Empty; 44 string brandPersonImage = string.Empty; 45 string brandPersonText = string.Empty; 46 string brandPersonHeading = string.Empty; 47 48 49 if (espressoProduct.Brand == "CREATIVE COLLECTION") 50 { 51 brandLogo = "/Files/Templates/Designs/bloomingville/_assets/img/Creative-Collection-logo_black.svg"; 52 brandPersonName = Espresso.Area.Item.CreativeCollection_Name; 53 brandPersonTitle = Espresso.Area.Item.CreativeCollection_Title; 54 brandPersonImage = Espresso.Area.Item.CreativeCollection_Image; 55 brandPersonText = Espresso.Area.Item.CreativeCollection_Text; 56 brandPersonHeading = Espresso.Area.Item.CreativeCollection_Heading; 57 58 if (string.IsNullOrEmpty(espressoProduct.ImageLifeStyle.Large) == true) 59 { 60 imageLifeStyle = Espresso.Area.Item.CreativeCollection_Image_LifeStyle_Alternative; 61 } 62 } 63 else if (espressoProduct.Brand == "ILLUME X BLOOMINGVILLE") 64 { 65 brandLogo = "/Files/Templates/Designs/bloomingville/_assets/img/illumexbloomingville-logo-ECH-long.svg"; 66 brandPersonName = Espresso.Area.Item.Illume_Name; 67 brandPersonTitle = Espresso.Area.Item.Illume_Title; 68 brandPersonImage = Espresso.Area.Item.Illume_Image; 69 brandPersonText = Espresso.Area.Item.Illume_Text; 70 brandPersonHeading = Espresso.Area.Item.Illume_Heading; 71 72 if (string.IsNullOrEmpty(espressoProduct.ImageLifeStyle.Large) == true) 73 { 74 imageLifeStyle = Espresso.Area.Item.Illume_Image_LifeStyle_Alternative; 75 } 76 } 77 else if (espressoProduct.Brand == "BLOOMINGVILLE MINI") 78 { 79 brandLogo = "/Files/Templates/Designs/bloomingville/_assets/img/Bloomingville-mini.svg"; 80 brandPersonName = Espresso.Area.Item.BloomingvilleKids_Name; 81 brandPersonTitle = Espresso.Area.Item.BloomingvilleKids_Title; 82 brandPersonImage = Espresso.Area.Item.BloomingvilleKids_Image; 83 brandPersonText = Espresso.Area.Item.BloomingvilleKids_Text; 84 brandPersonHeading = Espresso.Area.Item.BloomingvilleKids_Heading; 85 86 if (string.IsNullOrEmpty(espressoProduct.ImageLifeStyle.Large) == true) 87 { 88 imageLifeStyle = Espresso.Area.Item.BloomingvilleKids_Image_LifeStyle_Alternative; 89 } 90 } 91 else 92 { 93 brandLogo = "/Files/Templates/Designs/bloomingville/_assets/img/logo.svg"; 94 brandPersonName = Espresso.Area.Item.Bloomingville_Name; 95 brandPersonTitle = Espresso.Area.Item.Bloomingville_Title; 96 brandPersonImage = Espresso.Area.Item.Bloomingville_Image; 97 brandPersonText = Espresso.Area.Item.Bloomingville_Text; 98 brandPersonHeading = Espresso.Area.Item.Bloomingville_Heading; 99100 if (string.IsNullOrEmpty(espressoProduct.ImageLifeStyle.Large) == true)101 {102 imageLifeStyle = Espresso.Area.Item.Bloomingville_Image_LifeStyle_Alternative;103 }104 }105106 foreach (LoopItem FieldDisplayGroups in GetLoop("FieldDisplayGroups"))107 {108 if (FieldDisplayGroups.GetString("Ecom:FieldDisplayGroup.Name") == "LifeStyleImages")109 {110 int loopcounter = 1;111 foreach (LoopItem field in FieldDisplayGroups.GetLoop("Fields"))112 {113 if (!string.IsNullOrEmpty(field.GetString("Ecom:FieldDisplayGroup.Field.Value")))114 {115 string imagePath = field.GetString("Ecom:FieldDisplayGroup.Field.Value");116117 if (loopcounter != 1)118 {119 espressoProduct.ImageDetails.Add(120 ImageService.Instance121 .GetEspressoProductImageUrl(122 new EspressoProductImageUrlSettings()123 {124 ImagePath = imagePath ?? string.Empty125 }126 )127 );128 }129 }130 loopcounter++;131 }132 }133 }134135 // Canonical136137 string eComProductCanonical = string.Empty;138139 string globalValueUrl = GetGlobalValue("Global:Pageview.Url");140141 if (GetGlobalValue("Global:Pageview.Url").IndexOf("?") > -1)142 {143 globalValueUrl = GetGlobalValue("Global:Pageview.Url").Substring(0, GetGlobalValue("Global:Pageview.Url").IndexOf("?"));144 }145146 if (string.IsNullOrEmpty(GetString("Ecom:Product.Canonical")) == false)147 {148 eComProductCanonical = String.Format("{0}://{1}{2}", GetGlobalValue("Global:Request.Scheme"), GetGlobalValue("Global:Request.Host"), GetString("Ecom:Product.Canonical"));149 }150 else151 {152 eComProductCanonical = String.Format("{0}://{1}{2}", GetGlobalValue("Global:Request.Scheme"), GetGlobalValue("Global:Request.Host"), globalValueUrl);153 }154 }155156 @RenderingService.Instance.SectionEnd()157158159160 @if (espressoProduct.B2CActive == "No" && isUserAuthenticated == false)161 {162 }163 else164 {165 @SnippetStart("eComCanonical")@eComProductCanonical@SnippetEnd("eComCanonical")166167 <div class="e-product js-e-product" data-product-id="@espressoProduct.Id" data-has-variants="@espressoProduct.HasVariants.ToString().ToLower()" data-variant-id="@espressoProduct.VariantId">168169 @RenderingService.Instance.SectionStart(new SectionSettings170 {171 Classes = new ClassList("e-section pb-2")172 })173 <div class="col-12">174 <div class="row">175 <div class="col-12 col-md-4 col-lg-3 offset-md-1 pb-4">176 <div class="e-product-text-container">177178 <img class="my-4 text-muted brand-logo" style="height: 28px;" src="@brandLogo"/>179180 <p class="h4 mb-1">181 @espressoProduct.Number182 </p>183184 <h1 class="e-product-name mb-1 mt-0 h2">185 @espressoProduct.Name186 </h1>187188 <p class="e-product-price h3 mb-2 mt-0">189 @if (isUserAuthenticated)190 {191 <span class="mr-1">192 @espressoProduct.Price.Format()193 </span>194 if (espressoProduct.SuggestedRetailPrice.Value > espressoProduct.Price.Value)195 {196 <span class="text-muted" style="text-decoration: line-through;">197 @espressoProduct.SuggestedRetailPrice.Format()198 </span>199 }200 }201 </p>202203 <h4>@Translate("eCom Product - Vejl. udsalgspris - Text", "Vejl. udsalgspris")</h4>204 <p class="e-product-price mb-2 mt-0">205 @espressoProduct.WholesalePrice.Format()206 </p>207208 @if (isUserAuthenticated)209 {210 <div class="small">211 @RenderingService.Instance.PartialView("ecom/product/partials/delivery-info.cshtml", espressoProduct)212 </div>213 @RenderingService.Instance.PartialView("ecom/product/partials/add-to-cart.cshtml", espressoProduct)214 <br/>215 }216 else217 {218 @Espresso.Area.Item.EcommerceAlternativeCallToAction219 <p class="small pr-4">220 <span class="small">@Translate("eCom Product - We cannot garantee - Text", "*Vi kan ikke garantere, at hele sortimentet forefindes hos alle forhandlere.")</span>221 </p>222 }223224 </div>225 </div>226 <div class="col-12 col-md-7 col-lg-8 order-first">227228 @RenderingService.Instance.PartialView("ecom/product/partials/images.cshtml", espressoProduct)229 @if (isUserAuthenticated)230 {231 IEnumerable<CustomerProductList> userFavoriteLists = CustomerProductList.GetAllProductLists(PageView.Current().User.ID);232 string isInAnyList = userFavoriteLists.Any(fl => espressoProduct.IsInFavoriteList(fl.ID)) == true ? "isInAnyList" : "";233 <div class="bloomingville-addtolist-wrapper js-bloomingville-addtolist-wrapper @isInAnyList">234 <div class="dropdown js-e-productlist-favorite-list-container" data-product-id="@espressoProduct.Id" data-variant-id="@espressoProduct.VariantId">235 <span class="dropdown-toggle" data-toggle="dropdown">236 <span class="bloomingville-productlist-addtolist label-favorite"></span>237 </span>238 <div class="dropdown-menu dropdown-menu-left pt-0">239 @RenderingService.Instance.PartialView("ecom/productlist/partials/add-to-favorites.cshtml", espressoProduct)240 </div>241 </div>242 </div>243 }244245 </div>246 </div>247 </div>248 @RenderingService.Instance.SectionEnd()249250251 @RenderingService.Instance.SectionStart(new SectionSettings252 {253 Classes = new ClassList("col-12 col-md-7 pb-6 col-lg-6 col-lg-8 col-xl-8 mr-auto is-lg e-section"),254 ContentClasses = new ClassList("col-12 is-lg"),255 Collapsible = false256 })257 <div class="col-12">258 <div class="p-accordion-container border-dark">259 @if (!string.IsNullOrEmpty(espressoProduct.DescriptionShort))260 {261 <div class="p-accordion-item border border-right-0 border-left-0 border-dark e-theme-light mb-0 border-bottom-0">262 <div class="p-accordion-toggle">263 <p data-toggle="collapse" data-target="#e-accordion-12574-185" class="py-1 d-flex align-items-center m-0 justify-content-between collapsed" aria-expanded="false">264 <span class="p-accordion-toggle-text line-height-sm h4 my-0">@Translate("eCom Product - Produktbeskrivelse - Heading", "Produktbeskrivelse")</span><i class="material-icons p-accordion-toggle-icon text-dark ml-1 order-last">keyboard_arrow_down</i>265 </p>266 </div>267 <div id="e-accordion-12574-185" class="fade collapse" style="">268 <div class="pb-4 pt-1 pr-2 p-accordion-content">269 <div class="p-txt-container small">270 @espressoProduct.DescriptionShort271 </div>272 </div>273 </div>274 </div>275 }276 <div class="p-accordion-item border border-right-0 border-left-0 border-dark e-theme-light mb-0 ">277 <div class="p-accordion-toggle">278 <p data-toggle="collapse" data-target="#e-accordion-specifications" class="py-1 d-flex align-items-center m-0 collapsed justify-content-between">279 <span class="p-accordion-toggle-text line-height-sm h4 my-0">@Translate("eCom Product - Produktspecifikationer - Heading", "Produktspecifikationer")</span><i class="material-icons p-accordion-toggle-icon text-dark ml-1 order-last">keyboard_arrow_down</i>280 </p>281 </div>282 <div id="e-accordion-specifications" class="collapse fade">283 <div class="pb-4 pt-1 p-accordion-content">284 <div class="p-txt-container">285 <table class="table table-sm table-striped">286 @foreach (LoopItem FieldDisplayGroups in GetLoop("FieldDisplayGroups"))287 {288 if (FieldDisplayGroups.GetString("Ecom:FieldDisplayGroup.Name") == "Produktspecifikationer")289 {290 foreach (LoopItem field in FieldDisplayGroups.GetLoop("Fields"))291 {292 if (!string.IsNullOrEmpty(field.GetString("Ecom:FieldDisplayGroup.Field.Value")))293 {294 <tr>295 <th class="pl-2" style="width: 50%">296 @Translate(string.Format("eCom Product - Specifications - {0} - Label", field.GetString("Ecom:FieldDisplayGroup.Field.Id")), field.GetString("Ecom:FieldDisplayGroup.Field.Name"))297 </th>298 <td>@field.GetString("Ecom:FieldDisplayGroup.Field.Value")</td>299 </tr>300 }301 }302 }303 }304 </table>305 </div>306 </div>307 </div>308 </div>309 <div class="p-accordion-item border border-right-0 border-left-0 border-top-0 border-dark e-theme-light mb-0 ">310 <div class="p-accordion-toggle">311 <p data-toggle="collapse" data-target="#e-accordion-images" class="py-1 d-flex align-items-center m-0 collapsed justify-content-between">312 <span class="p-accordion-toggle-text line-height-sm h4 my-0">@Translate("eCom Product - Billeder - Heading", "Billeder")</span><i class="material-icons p-accordion-toggle-icon text-dark ml-1 order-last">keyboard_arrow_down</i>313 </p>314 </div>315 <div id="e-accordion-images" class="collapse fade">316 <div class="pb-4 pt-1 p-accordion-content">317 <div class="p-txt-container">318 @RenderingService.Instance.PartialView("ecom/product/partials/images-download.cshtml", espressoProduct)319 </div>320 </div>321 </div>322 </div>323 </div>324 </div>325 @RenderingService.Instance.SectionEnd()326327 @RenderingService.Instance.SectionStart(new SectionSettings328 {329 Classes = new ClassList("col-12 e-section e-theme-primary"),330 ContentClasses = new ClassList("col-12 col-md-10 col-lg-8 py-6 mx-auto")331 })332 <div class="col-12">333 <img class="mb-4 col-4 mx-auto d-flex mx-auto" src="@brandLogo"/>334 <p class="lead text-center mb-4">@brandText</p>335 <img src="@imageLifeStyle" class="p-img">336 </div>337 @RenderingService.Instance.SectionEnd()338339 @RenderingService.Instance.SectionStart(new SectionSettings340 {341 Classes = new ClassList("col-12 e-section e-theme-auto"),342 ContentClasses = new ClassList("col-12 pt-6")343 })344345 @if (espressoProduct.RelatedGroups.ContainsKey(relatedGroupIds[2]) && espressoProduct.RelatedGroups[relatedGroupIds[2]].Products.Any())346 {347 string handlebarsTemplateName = string.Format("{0}-{1}-{2}", espressoProduct.Id, "related-group", espressoProduct.RelatedGroups[relatedGroupIds[2]].Id).ToLower();348 string jsonSrc = string.Format("{0}.{1}.{2}", espressoProduct.Id, "relatedGroups", espressoProduct.RelatedGroups[relatedGroupIds[2]].Id);349350 <div class="p mx-auto p-icontext col-12 col-sm-12 col-md-10 col-lg-6">351 <div class="row align-items-start">352 <div class="p-txt-container col col-12">353 <h2 class="h1" style="text-align: center;">@brandPersonHeading</h2>354 <p class="lead" style="text-align: center;">355 @brandPersonText356 </p>357 </div>358 </div>359 </div>360 <div class="p p-divider col-12" id="12409">361 <hr class="p-divider-rule border-transparent">362 </div>363 <div class="p mb-5 mx-auto p-imagetext p-imagetext-tb col-12 col-sm-12 col-md-6 col-lg-4 ">364 <div class="row">365 <div class="p-txt-container col-12 text-center">366 <h4>@brandPersonTitle</h4>367 </div>368 <div class="p-img-container col-8 col-lg-12 mx-auto order-first">369 <div class="row">370 <div class="col-12 mb-2">371 <img src="/admin/public/getimage.ashx?Image=@brandPersonImage&amp;Width=640&amp;Height=852&amp;Format=png&amp;Quality=75&amp;Crop=0" class="p-img" alt="">372 </div>373 </div>374 </div>375 </div>376 </div>377 <div class="p p-imagetext p-imagetext-tb col-12 col-lg-6">378379 <div class="e-productlist js-e-jsonpublisher" data-json-src="@jsonSrc" data-json-src-prop="" data-json-template-prop="" data-json-item-count="4" data-json-item-count-prop="products" data-template=".js-e-handlebars-tmpl-@handlebarsTemplateName">380381 <script class="js-e-handlebars-tmpl-@handlebarsTemplateName" type="text/x-handlebars-template">382 <div class="e-productlist-main">383 <div class="row">384 <div class="col-12">385 <div class="e-productlist">386 {{#if products}}387 <div class="row">388 {{#each products}}389 <div class="col-6">390 {{{listItemHtml}}}391 </div>392 {{/each}}393 </div>394 {{/if}}395 </div>396 </div>397 </div>398 </div>399 </script>400401 </div>402 </div>403 }404 @RenderingService.Instance.SectionEnd()405406 @if (espressoProduct.RelatedGroups.ContainsKey(relatedGroupIds[0]) && espressoProduct.RelatedGroups[relatedGroupIds[0]].Products.Any())407 {408 string handlebarsTemplateName = string.Format("{0}-{1}-{2}", espressoProduct.Id, "related-group", espressoProduct.RelatedGroups[relatedGroupIds[0]].Id).ToLower();409 string jsonSrc = string.Format("{0}.{1}.{2}", espressoProduct.Id, "relatedGroups", espressoProduct.RelatedGroups[relatedGroupIds[0]].Id);410411 @RenderingService.Instance.SectionStart(new SectionSettings412 {413 Classes = new ClassList("e-section py-6 bg-light")414 })415 <div class="col-12">416 <div class="e-productlist js-e-jsonpublisher" data-json-src="@jsonSrc" data-json-src-prop="" data-json-template-prop="" data-json-item-count="4" data-json-item-count-prop="products" data-template=".js-e-handlebars-tmpl-@handlebarsTemplateName">417418 <script class="js-e-handlebars-tmpl-@handlebarsTemplateName" type="text/x-handlebars-template">419 <div class="e-productlist-header">420 <p class="h1">@Translate("eCom Product - Related Groups - You might also like - Heading", "You might also like")</p>421 </div>422 <div class="e-productlist-main">423 <div class="row">424 <div class="col-12">425 <div class="e-productlist">426 {{#if products}}427 <div class="row">428 {{#each products}}429 <div class="@ProductListService.Instance.GetItemClasses()">430 {{{listItemHtml}}}431 </div>432 {{/each}}433 </div>434 {{/if}}435 </div>436 </div>437 </div>438 </div>439 </script>440441 </div>442 </div>443 @RenderingService.Instance.SectionEnd()444 }445 @if (espressoProduct.RelatedGroups.ContainsKey(relatedGroupIds[1]) && espressoProduct.RelatedGroups[relatedGroupIds[1]].Products.Any())446 {447 string handlebarsTemplateName = string.Format("{0}-{1}-{2}", espressoProduct.Id, "related-group", espressoProduct.RelatedGroups[relatedGroupIds[1]].Id).ToLower();448 string jsonSrc = string.Format("{0}.{1}.{2}", espressoProduct.Id, "relatedGroups", espressoProduct.RelatedGroups[relatedGroupIds[1]].Id);449450 @RenderingService.Instance.SectionStart(new SectionSettings451 {452 Classes = new ClassList("e-section py-6")453 })454 <div class="col-12">455 <div class="e-productlist js-e-jsonpublisher" data-json-src="@jsonSrc" data-json-src-prop="" data-json-template-prop="" data-json-item-count="4" data-json-item-count-prop="products" data-template=".js-e-handlebars-tmpl-@handlebarsTemplateName">456457 <script class="js-e-handlebars-tmpl-@handlebarsTemplateName" type="text/x-handlebars-template">458 <div class="e-productlist-header">459 <p class="h1">@Translate("eCom Product - Related Groups - Trending Now - Heading", "Trending Now")</p>460 </div>461 <div class="e-productlist-main">462 <div class="row">463 <div class="col-12">464 <div class="e-productlist">465 {{#if products}}466 <div class="row">467 {{#each products}}468 <div class="@ProductListService.Instance.GetItemClasses()">469 {{{listItemHtml}}}470 </div>471 {{/each}}472 </div>473 {{/if}}474 </div>475 </div>476 </div>477 </div>478 </script>479480 </div>481 </div>482 @RenderingService.Instance.SectionEnd()483 }484485 @RenderingService.Instance.PartialView("ecom/product/partials/metadata.cshtml", espressoProduct)486 @RenderingService.Instance.PartialView("ecom/product/partials/gtm-tracking.cshtml", espressoProduct)487488 <code class="js-e-breadcrumb-item-append" data-text="@HttpUtility.HtmlAttributeEncode(espressoProduct.Name)" data-link="@HttpUtility.HtmlAttributeEncode(espressoProduct.Link)"></code>489490491 <script>492 e4.data.set( '@espressoProduct.Id', JSON.parse('@HttpUtility.JavaScriptStringEncode(JsonService.Instance.ToJson(espressoProduct))') )493 </script>494495 </div>496 @RenderingService.Instance.SectionStart(new SectionSettings())497498 <script id="js-e-handlebars-tmpl-favorite-list" type="text/x-handlebars-template">499 {{#each lists as | list |}}500 <div class="dropdown-item">501 <label class="custom-checkbox custom-control m-0">502 <input type="checkbox" class="custom-control-input js-e-favorite-list" id="js-e-favorite-list-{{list.id}}" name="favorite-list-{{list.id}}" {{#if list.isInFavoriteList}}checked{{/if}} data-url-add="{{{list.addUrl}}}" data-url-remove="{{{list.removeUrl}}}">503 <span class="custom-control-indicator"></span>504 <span class="custom-control-description">{{list.name}}</span>505 </label>506 </div>507 {{/each}}508 </script>509 }
keyboard_arrow_up