Rundsave
fra Altendorf og Robland
Error executing template "Designs/Junget/ItemPublisher/List/ProductList2024.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at Website.Helpers.MixedProduct.GetMixedProductList(List`1 products, List`1 loop, Int32 areaId)
at CompiledRazorTemplates.Dynamic.RazorEngine_c49e79b635104c538a473941803f700b.Execute() in D:\Web\Junget\Website\Files\Templates\Designs\Junget\ItemPublisher\List\ProductList2024.cshtml:line 44
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 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2
3
4
5 @{
6
7 var productService = new Dynamicweb.Ecommerce.Products.ProductService();
8 var pageService = new Dynamicweb.Content.PageService();
9 var page = pageService.GetPage(GetInteger("ItemPublisher:Global.PageId"));
10 List<string> stringProducts = new List<string>();
11
12 if (page.Item["Products"] != null)
13 {
14
15 stringProducts = page.Item["Products"].ToString().Split(',').ToList<string>();
16 }
17 List<Dynamicweb.Ecommerce.Products.Product> products = new List<Dynamicweb.Ecommerce.Products.Product>();
18 List<Website.Helpers.MixedProduct> mixedProducts = new List<Website.Helpers.MixedProduct>();
19
20 for (int i = 0; i < stringProducts.Count; i++)
21 {
22
23 stringProducts[i] = stringProducts[i].Replace("p_", "");
24 stringProducts[i] = stringProducts[i].Replace(":", "");
25 var product = productService.GetProductById(stringProducts[i], "", false);
26
27 if (product != null)
28 {
29 products.Add(product);
30 }
31
32 }
33
34 var mixedProduct = new Website.Helpers.MixedProduct();
35
36
37 foreach (var item in GetLoop("ItemPublisher:Items.List"))
38 {
39 //NIX PILLE - DW BUG - ENDNU EN GRUND TIL AT GÅ TIL DW 10
40 item.Values.Add("page", item.GetString("ItemPublisher:Item.PageName"));
41 item.Values.Add("gallery", item.GetString("ItemPublisher:Item.Gallery"));
42 }
43
44 mixedProducts = mixedProduct.GetMixedProductList(products, GetLoop("ItemPublisher:Items.List"), Pageview.AreaID).OrderBy(x => x.name).ToList();
45
46 }
47
48 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
49
50
51 @helper RenderMixedProductsList(List<Website.Helpers.MixedProduct> mixedProducts)
52 {
53 if (mixedProducts.Count > 0)
54 {
55 <div class="row" style="">
56 <div class="col-12 d-flex flex-wrap p-0 m-0">
57 @foreach (var item in mixedProducts)
58 {
59 <div class="col-xl-3 col-lg-4 col-md-6 col-sm-12 category__item js-search-category-item p-2 p-md-3" style="align-self: stretch">
60 <a href="@item.url" style="text-decoration: none">
61 <div class="category__item__container p-1 justify-content-center justify-content-md-between" style="background-color: white;">
62 <div class="d-flex flex-column" style="justify-content: center;">
63 <div style="" class="d-none d-md-flex flex-column category__item__container__image-container">
64 @if (!string.IsNullOrWhiteSpace(item.ImageSpot))
65 {
66 <img class="img-fluid" style="object-fit: cover; align-self: center" src="/Admin/Public/GetImage.ashx?Image=@item.ImageSpot)&width=300&compression=70&mode=boxpad&format=webP&crop=0" alt="@item.altTag">
67 }
68 else if (!string.IsNullOrWhiteSpace(item.Image))
69 {
70 <img class="img-fluid" src="@item.Image" style="align-self: center" alt="@item.altTag">
71 }
72
73 else if (!string.IsNullOrEmpty(item.firstGalleryImage))
74 {
75 <img class="img-fluid " src="/Admin/Public/GetImage.ashx?Image=@item.firstGalleryImage&width=300&compression=70&format=webP&crop=0" style="align-self: center" alt="@item.listName">
76 }
77 </div>
78 <div>
79 @if (item.isProduct)
80 {
81 <div class="item__container__text-container__text d-flex justify-content-center">
82 @item.name
83 <div class="d-none"></div>
84 </div>
85 }
86 else
87 {
88 <div class="item__container__text-container__text d-flex justify-content-center">
89 @item.listName
90 <div class="d-none">@item.metaTitle @item.metaDescription @item.metaKeywords</div>
91 </div>
92 }
93 </div>
94 </div>
95
96 <div class="d-flex flex-column mb-md-4">
97
98 @{
99 var visibility = "hidden";
100 }
101
102 @if (item.isProduct)
103 {
104 if (!string.IsNullOrEmpty(item.price))
105 {
106 visibility = "visible";
107 }
108 }
109
110 <div class="item__container__info d-none d-md-flex justify-content-around" style="visibility: @visibility">
111 <div class="d-flex flex-column justify-content-center" style="text-align: center">
112
113 @if (item.isProduct)
114 {
115
116
117 <div>
118
119 <div data-id="@item.productId" data-variantid="" class="lazyload-price item__container__info__price">
120 <span>
121 @item.price
122 </span>
123 <img src="/Files/Images/loading.gif">
124 </div>
125 </div>
126
127 }
128
129 @if (!string.IsNullOrEmpty(item.beforePrice))
130 {
131 <div class="item__container__info__price-before">Før @item.beforePrice</div>
132 }
133 <div class="item__container__info__no-vat">(Eksl. moms)</div>
134 </div>
135 <div class="d-flex" style="align-items: center">
136 <button type="button" class="btn btn-success px-4 " style="height: 43px">
137 <span class="icon icon-shopping-cart mr-2"></span>@Translate("BESTIL")
138 </button>
139 </div>
140 </div>
141
142 </div>
143 </div>
144 </a>
145 </div>
146 }
147
148 </div>
149 </div>
150
151
152 if (GetInteger("ItemPublisher:Items.Paging.TotalPages") > 1)
153 {
154 var hasPrevPage = GetInteger("ItemPublisher:Items.Paging.CurrentPage") > 1;
155 var hasNextPage = GetInteger("ItemPublisher:Items.Paging.CurrentPage") < GetInteger("ItemPublisher:Items.Paging.TotalPages");
156
157 <ul class="pagination">
158 <li class='@(hasPrevPage ? "" : "disabled")'>
159 @if (hasPrevPage)
160 {
161 <a href='@System.Web.HttpUtility.HtmlEncode(GetValue("ItemPublisher:Items.Paging.PrevPage"))'>@Translate("Previous_page", "«")</a>
162 }
163 else
164 {
165 <span>@Translate("Previous_page", "«")</span>
166 }
167 </li>
168
169 @foreach (var p in GetLoop("ItemPublisher:Items.Paging.Pages"))
170 {
171 var isCurrent = p.GetBoolean("ItemPublisher:Items.Paging.Pages.Page.IsCurrent");
172 <li class='@(isCurrent ? "active" : "")'>
173 @if (isCurrent)
174 {
175 <span>@p.GetValue("ItemPublisher:Items.Paging.Pages.Page.Number")</span>
176 }
177 else
178 {
179 <a href='@System.Web.HttpUtility.HtmlEncode(p.GetValue("ItemPublisher:Items.Paging.Pages.Page.Url"))'>@p.GetValue("ItemPublisher:Items.Paging.Pages.Page.Number")</a>
180 }
181 </li>
182 }
183
184 <li class='@(hasNextPage ? "" : "disabled")'>
185 @if (hasNextPage)
186 {
187 <a href='@System.Web.HttpUtility.HtmlEncode(GetValue("ItemPublisher:Items.Paging.NextPage"))'>@Translate("Next_page", "»")</a>
188 }
189 else
190 {
191 <span>@Translate("Next_page", "»")</span>
192 }
193 </li>
194 </ul>
195 }
196 }
197 }
198 @RenderMixedProductsList(mixedProducts)