Error executing template "/Designs/Swift/Paragraph/Custom_AddOnDetails_design.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_aa7d986c0b8a43f8977c3cafa9849ad7.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, 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 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 2 @using Dynamicweb.Rendering; 3 @using Dynamicweb.Core; 4 @using CustomWebApi.Services; 5 @using CustomWebApi.Models; 6 @using Dynamicweb.Core.Encoders 7 8 @{ 9 string discountId = Dynamicweb.Context.Current.Request.QueryString["discountid"].ToString(); 10 string page = Dynamicweb.Context.Current.Request.QueryString["page"].ToString(); 11 string LanguageId = Dynamicweb.Ecommerce.Common.Context.LanguageID; 12 string CurrencyCode = Dynamicweb.Ecommerce.Common.Context.Currency.Code; 13 string CountryCode = Dynamicweb.Ecommerce.Common.Context.Country.Code2; 14 string ShopId = Pageview.Area.EcomShopId; 15 int pageId = GetPageIdByNavigationTag("Shop"); 16 17 DiscountsService discountsService = new DiscountsService(); 18 AddOnDealInfoList addOnDealInfoList = new AddOnDealInfoList(); 19 addOnDealInfoList = discountsService.GetAllAddOnDealProducts(discountId, page, LanguageId, CurrencyCode, CountryCode, ShopId, pageId); 20 21 int adddealpage = GetPageIdByNavigationTag("AddOnDealListPage"); 22 string pagingurl = ""; 23 if (addOnDealInfoList.addOnDealInfo.Count > 0) 24 { 25 pagingurl = "/Default.aspx?ID=" + adddealpage + "&discountid=" + addOnDealInfoList.addOnDealInfo[0].discountId + "&page=pagid"; 26 } 27 string modelFeed = "/Default.aspx?ID=" + GetPageIdByNavigationTag("AddToCartModelFeed"); 28 string url = "/Default.aspx?ID=" + (GetPageIdByNavigationTag("CartService")); 29 if (!url.Contains("LayoutTemplate")) 30 { 31 url += url.Contains("?") ? "&LayoutTemplate=Swift_MiniCart.cshtml" : "?LayoutTemplate=Swift_MiniCart.cshtml"; 32 } 33 } 34 35 @if (addOnDealInfoList.addOnDealInfo.Count > 0) 36 { 37 <div class="cus__addondetail"> 38 <div class="cus__addondetail-header"> 39 <div class="cus__addondetail-title fs-5 fw-bold"> 40 @Translate("Add-On Details") 41 </div> 42 <div class="text-end"> 43 <button type="button" class="btn cus_btn-secondaryoutline fs-7 fw-bold py-2">@addOnDealInfoList.addOnDealInfo[0].discountName</button> 44 </div> 45 </div> 46 <div class="cus__addondetail-body my-4"> 47 <div class="cus__addondetail-prolist grid"> 48 @foreach (var addOnDealProduct in addOnDealInfoList.addOnDealInfo) 49 { 50 <div class="cus__addondetail-proitem g-col-12 g-col-md-6 d-flex mb-3"> 51 <div class="cus__pro-img w-25"> 52 <img src="@addOnDealProduct.image" class="h-100 w-100 " /> 53 </div> 54 <div class="cus__pro-info w-75 ps-3"> 55 <div class="cus__proBrand fw-bold text-uppercase">@addOnDealProduct.artistname</div> 56 <a href="@addOnDealProduct.link" class="cus__proName opacity-75 fs-7 pb-1">@addOnDealProduct.name </a> 57 58 @if (addOnDealProduct.price == addOnDealProduct.priceDiscount) 59 { 60 <div class="cus__proPrice fw-bold">@addOnDealProduct.price</div> 61 } 62 else 63 { 64 <div class="cus__prodisPricediv"> 65 <div class="cus__proPrice cus__prodisPrice">@addOnDealProduct.priceDiscount</div> 66 <div class="cus__proPrice fw-bold">@addOnDealProduct.price</div> 67 </div> 68 } 69 70 <form method="post" action="@url" class="cus__pro-actionbtns d-flex gap-3 mt-2"> 71 <input type="hidden" name="redirect" value="false"> 72 <input type="hidden" name="ProductId" value="@addOnDealProduct.productId"> 73 <input type="hidden" name="ProductName" value="@HtmlEncoder.HtmlEncode(addOnDealProduct.name)"> 74 <input type="hidden" name="ProductVariantName" value=""> 75 <input type="hidden" name="ProductCurrency" value="@Dynamicweb.Ecommerce.Common.Context.Currency.Code"> 76 <input type="hidden" name="ProductPrice" value="@addOnDealProduct.price"> 77 <input type="hidden" name="ProductReferer" value="component_ProductAddToCart"> 78 <input type="hidden" name="cartcmd" value="add"> 79 <input type="submit" class="d-none" onclick="event.preventDefault();"> 80 @if (!string.IsNullOrEmpty(addOnDealProduct.variantId)) 81 { 82 <input type="hidden" name="VariantId" value="@addOnDealProduct.variantId"> 83 } 84 <div> 85 <button type="button" class="btn cus_btn-secondary" onclick="DecrAddDealDetailQty('@addOnDealProduct.productId');"> 86 <img src="Files/Images/TAF/Icons/quantity-minus.png" class="w-100 h-100" /> 87 </button> 88 <input type="text" class="pro__qty" name="Quantity" id="proqty_@addOnDealProduct.productId" value="1" min="1" /> 89 <button type="button" class="btn cus_btn-secondary" onclick="IncrAddDealDetailQty('@addOnDealProduct.productId','@addOnDealProduct.variantId');"> 90 <img src="Files/Images/TAF/Icons/quantity-plus.png" class="w-100 h-100" /> 91 </button> 92 </div> 93 <div> 94 <button type="button" onclick="CustomAddtoCartFeed(event,'@modelFeed','@addOnDealProduct.productId','@addOnDealProduct.variantId',this.id)" class="btn cus_btn-primary js-add-to-cart-button fs-7" @addOnDealProduct.disableAddToCart>Add to Cart</button> 95 <button type="button" onclick="swift.Cart.Update(event)" class="btn cus_btn-primary js-add-to-cart-button fs-7 visually-hidden" id="AddToCartButton_@(addOnDealProduct.productId)" @addOnDealProduct.disableAddToCart>Add to Cart</button> 96 </div> 97 </form> 98 </div> 99 </div> 100 } 101 </div> 102 </div> 103 <div class="cus__addondetail-footer d-flex justify-content-center pt-3"> 104 <div class="cus_pagination d-flex gap-2"> 105 @if (addOnDealInfoList.pager.CurrentPage > 1) 106 { 107 <a class="cus_prevbtn" href="@pagingurl.Replace("pagid", (addOnDealInfoList.pager.CurrentPage - 1).ToString())"> 108 <img src="Files/Images/TAF/Icons/paging-left-arrow.png" /> 109 </a> 110 } 111 @if (addOnDealInfoList.pager.Pages != null) 112 { 113 <ul class="cus_pagination-ul"> 114 @foreach (var p in addOnDealInfoList.pager.Pages) 115 { 116 <li class="@(p == addOnDealInfoList.pager.CurrentPage ? "active" : "")"> 117 <a class="cus_pagination-btn" href="@pagingurl.Replace("pagid", p.ToString())">@p</a> 118 </li> 119 } 120 </ul> 121 } 122 123 124 @if (addOnDealInfoList.pager.CurrentPage < addOnDealInfoList.pager.TotalPages) 125 { 126 <a class="cus_nextbtn" href="@pagingurl.Replace("pagid", (addOnDealInfoList.pager.CurrentPage + 1).ToString())"> 127 <img src="Files/Images/TAF/Icons/paging-right-arrow.png" /> 128 </a> 129 } 130 </div> 131 </div> 132 </div> 133 } 134
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing