Error compiling template "Designs/Swift-v2/Paragraph/Swift-v2_MiniCart/Clean.cshtml"
Line 51: The type or namespace name 'Samples' does not exist in the namespace 'Custom' (are you missing an assembly reference?)
Line 52: The type or namespace name 'Samples' does not exist in the namespace 'Custom' (are you missing an assembly reference?)
1 // <auto-generated/>
2 #pragma warning disable 1591
3 namespace CompiledRazorTemplates.Dynamic
4 {
5 #line hidden
6 using System.Threading.Tasks;
7 using System;
8 using System.Collections.Generic;
9 using System.Linq;
10 internal class RazorEngine_8c8f57fb6bc349cab20314aa70f09a99 : Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
11 {
12 #pragma warning disable 1998
13 public async override global::System.Threading.Tasks.Task ExecuteAsync()
14 {
15 WriteLiteral("\r\n");
16
17 var cartContext = string.Empty;
18 string cartId = string.Empty;
19 string jsCartClass = "js-cart-qty";
20 bool userHasPendingQuote = Dynamicweb.Ecommerce.Common.Context.Cart != null && Dynamicweb.Ecommerce.Common.Context.Cart.IsQuote;
21
22 Dynamicweb.Ecommerce.Common.Context.CartContext = null;
23 if (Model.Item.TryGetString("ContextCart", out var cartContextSelection))
24 {
25 cartContext = cartContextSelection;
26 cartId = $"ID=\"Cart_{cartContext}\"";
27 jsCartClass = string.Empty;
28
29 Dynamicweb.Ecommerce.Common.Context.CartContext = Dynamicweb.Ecommerce.Services.OrderContexts.GetOrderContextById(cartContext);
30 }
31 //Custom add price and producttypecount instead of quantity
32 string totalPrice = string.Empty;
33 int samplesCount = 0;
34 int productsCount = 0;
35 if (Dynamicweb.Ecommerce.Common.Context.Cart != null)
36 {
37 bool showPricesWithVat = Dynamicweb.Ecommerce.Common.Context.DisplayPricesWithVat;
38 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat.ToString());
39
40 if (!showPricesWithVat && !neverShowVat)
41 {
42 totalPrice = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Price.PriceWithoutVATFormatted;
43 }
44 else
45 {
46 totalPrice = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Price.PriceFormatted;
47 }
48
49 if (Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines != null && Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Any())
50 {
51 samplesCount = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Where(ol => Custom.Samples.Helpers.Helper.IsFreeSample(ol.Id)).Count();
52 productsCount = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Where(ol => !Custom.Samples.Helpers.Helper.IsFreeSample(ol.Id)).Count();
53 }
54
55 }
56
57 var cartPageId = GetPageIdByNavigationTag("CartPage");
58 if (Model.Item.TryGetLink("CartPage", out var cartPage))
59 {
60 cartPageId = cartPage.PageId;
61 }
62 var cartSummaryPageId = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "CartSummary")?.ID ?? 0;
63 WriteLiteral("\r\n<div class=\"nav-wrapper\">\r\n <a");
64 BeginWriteAttribute("href", " href=\"", 2304, "\"", 2339, 2);
65 WriteAttributeValue("", 2311, "/Default.aspx?ID=", 2311, 17, true);
66 WriteAttributeValue("", 2328, cartPageId, 2328, 11, false);
67 EndWriteAttribute();
68 WriteLiteral(" class=\"p-2 nav-link d-inline-flex align-items-center gap-2 text-nowrap text-decoration-underline-hover\">\r\n");
69 if (Model.Item.TryGetString("Icon", out string iconPath))
70 {
71 //Custom remove icon- class
72 WriteLiteral(" <div>");
73 Write(ReadFile(iconPath));
74 WriteLiteral("</div>\r\n");
75 }
76 if (Model.Item.TryGetString("Title", out string title))
77 {
78 WriteLiteral(" <span>");
79 Write(title);
80 WriteLiteral("</span>\r\n");
81 }
82 WriteLiteral(" <div");
83 BeginWriteAttribute("class", " class=\"", 2755, "\"", 2815, 5);
84 WriteAttributeValue("", 2763, "mini-cart-quantity", 2763, 18, true);
85 WriteAttributeValue(" ", 2781, "text-xs", 2782, 8, true);
86 WriteAttributeValue(" ", 2789, "bold", 2790, 5, true);
87 WriteAttributeValue(" ", 2794, "pe-none", 2795, 8, true);
88 WriteAttributeValue(" ", 2802, jsCartClass, 2803, 12, false);
89 EndWriteAttribute();
90 WriteLiteral(" ");
91 Write(cartId);
92 WriteLiteral(" data-order-context=\"");
93 Write(cartContext);
94 WriteLiteral("\">\r\n");
95 if (productsCount > 0)
96 {
97 if (!string.IsNullOrEmpty(totalPrice))
98 {
99 WriteLiteral(" <div");
100 BeginWriteAttribute("class", " class=\"", 3013, "\"", 3021, 0);
101 EndWriteAttribute();
102 WriteLiteral(">\r\n ");
103 Write(totalPrice);
104 WriteLiteral("\r\n </div>\r\n");
105 }WriteLiteral(" <div class=\"d-flex text-xs medium\">\r\n <div><span class=\"bold pe-1\">");
106 Write(productsCount);
107 WriteLiteral("</span>");
108 Write(productsCount == 1 ? Translate("Custom.Header.MiniCart.Product", "product") : Translate("Custom.Header.MiniCart.Products", "products"));
109 WriteLiteral("</div>\r\n");
110 if (samplesCount > 0)
111 {
112 WriteLiteral(" <div class=\"ps-1\">/ <span class=\"bold pe-1\">");
113 Write(samplesCount);
114 WriteLiteral("</span>");
115 Write(samplesCount == 1 ? Translate("Custom.Header.MiniCart.Sample", "sample") : Translate("Custom.Header.MiniCart.Samples", "samples"));
116 WriteLiteral("</div>\r\n");
117 }
118 WriteLiteral(" </div>\r\n");
119
120 } else if (samplesCount > 0)
121 {
122 WriteLiteral(" <div class=\"text-xs bold\">\r\n ");
123 Write(Translate("Custom.Header.MiniCart.FreeSamples", " Free samples"));
124 WriteLiteral("\r\n </div>\r\n");
125 WriteLiteral(" <div class=\"text-xs medium\"><span class=\"bold pe-1\">");
126 Write(samplesCount);
127 WriteLiteral("</span>");
128 Write(samplesCount == 1 ? Translate("Custom.Header.MiniCart.Sample", "sample") : Translate("Custom.Header.MiniCart.Samples", "samples"));
129 WriteLiteral("</div>\r\n");
130 }
131 WriteLiteral(" </div>\r\n </a>\r\n</div>\r\n\r\n");
132 if ((Model.Item?.TryGetString("OffcanvasMinicartBehaviour", out string offcanvasMiniCartBehaviour) ?? false) && (!offcanvasMiniCartBehaviour.Equals("0")) && (cartSummaryPageId > 0) && !userHasPendingQuote)
133 {
134 WriteLiteral(@" <script type=""module"">
135 document.addEventListener('updated.swift.cart', (event) => {
136 let orderContext = event?.detail?.formData?.get(""OrderContext"");
137 updateCartSummary(orderContext);
138
139 let offcanvasMiniCartBehaviourJs = """);
140 Write(offcanvasMiniCartBehaviour);
141 WriteLiteral(@""";
142
143 if (event?.detail?.formData?.get(""MiniCartBehaviour"")) {
144 offcanvasMiniCartBehaviourJs = event?.detail?.formData?.get(""MiniCartBehaviour"");
145 }
146
147 if (offcanvasMiniCartBehaviourJs == ""2"" || offcanvasMiniCartBehaviourJs == ""3"") {
148 openMiniCartOffcanvas();
149 }
150 });
151 </script>
152 ");
153
154 if (offcanvasMiniCartBehaviour == "1" || offcanvasMiniCartBehaviour == "3")
155 {
156 WriteLiteral(@" <script type=""module"">
157 let miniCartToggles = document.querySelectorAll('.mini-cart-quantity');
158 miniCartToggles?.forEach((toggle) => {
159 toggle.parentElement.addEventListener('click', (event) => {
160 event.preventDefault();
161 let orderContext = toggle.dataset?.orderContext;
162 updateCartSummary(orderContext);
163
164 openMiniCartOffcanvas();
165 });
166 });
167 </script>
168 ");
169 }
170
171 WriteLiteral(" <script>\r\n const updateCartSummary = (orderContext) => {\r\n const dynamicOffcanvas = document.getElementById(\'DynamicOffcanvas\');\r\n swift.PageUpdater.UpdateFromUrlInline(event, \'/Default.aspx?ID=");
172 Write(cartSummaryPageId);
173 WriteLiteral("&CartType=minicart&RequestPageID=");
174 Write(Pageview.Page.ID);
175 WriteLiteral(@"&OrderContext=' + orderContext +'', 'Swift-v2_CartSummary.cshtml', dynamicOffcanvas);
176 };
177 const openMiniCartOffcanvas = () => {
178 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas');
179 const miniCartOffcanvas = bootstrap.Offcanvas.getOrCreateInstance(dynamicOffcanvas);
180 dynamicOffcanvas.classList.add('overflow-y-auto');
181
182 if (!miniCartOffcanvas._isShown) {
183 miniCartOffcanvas.show();
184 hideActiveOffcanvases(miniCartOffcanvas);
185 }
186 };
187 const hideActiveOffcanvases = (miniCartOffcanvas) => {
188 let activeOffcanvases = document.querySelectorAll('.offcanvas.show');
189 activeOffcanvases?.forEach((offCanvas) => {
190 offCanvas = bootstrap.Offcanvas.getInstance(offCanvas);
191 if (offCanvas !== miniCartOffcanvas) {
192 offCanvas.hide();
193 }
194 });
195 };
196 </script>
197 ");
198 }
199 }
200 #pragma warning restore 1998
201 }
202 }
203 #pragma warning restore 1591
204
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel>
2
3 @{
4 var cartContext = string.Empty;
5 string cartId = string.Empty;
6 string jsCartClass = "js-cart-qty";
7 bool userHasPendingQuote = Dynamicweb.Ecommerce.Common.Context.Cart != null && Dynamicweb.Ecommerce.Common.Context.Cart.IsQuote;
8
9 Dynamicweb.Ecommerce.Common.Context.CartContext = null;
10 if (Model.Item.TryGetString("ContextCart", out var cartContextSelection))
11 {
12 cartContext = cartContextSelection;
13 cartId = $"ID=\"Cart_{cartContext}\"";
14 jsCartClass = string.Empty;
15
16 Dynamicweb.Ecommerce.Common.Context.CartContext = Dynamicweb.Ecommerce.Services.OrderContexts.GetOrderContextById(cartContext);
17 }
18 //Custom add price and producttypecount instead of quantity
19 string totalPrice = string.Empty;
20 int samplesCount = 0;
21 int productsCount = 0;
22 if (Dynamicweb.Ecommerce.Common.Context.Cart != null)
23 {
24 bool showPricesWithVat = Dynamicweb.Ecommerce.Common.Context.DisplayPricesWithVat;
25 bool neverShowVat = string.IsNullOrEmpty(showPricesWithVat.ToString());
26
27 @if (!showPricesWithVat && !neverShowVat)
28 {
29 totalPrice = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Price.PriceWithoutVATFormatted;
30 }
31 else
32 {
33 totalPrice = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Price.PriceFormatted;
34 }
35
36 if (Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines != null && Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Any())
37 {
38 samplesCount = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Where(ol => Custom.Samples.Helpers.Helper.IsFreeSample(ol.Id)).Count();
39 productsCount = Dynamicweb.Ecommerce.Common.Context.Cart.OrderLines.Where(ol => !Custom.Samples.Helpers.Helper.IsFreeSample(ol.Id)).Count();
40 }
41
42 }
43
44 var cartPageId = GetPageIdByNavigationTag("CartPage");
45 if (Model.Item.TryGetLink("CartPage", out var cartPage))
46 {
47 cartPageId = cartPage.PageId;
48 }
49 var cartSummaryPageId = Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "CartSummary")?.ID ?? 0;
50 }
51
52 <div class="nav-wrapper">
53 <a href="/Default.aspx?ID=@cartPageId" class="p-2 nav-link d-inline-flex align-items-center gap-2 text-nowrap text-decoration-underline-hover">
54 @if (Model.Item.TryGetString("Icon", out string iconPath))
55 {
56 //Custom remove icon- class
57 <div>@ReadFile(iconPath)</div>
58 }
59 @if (Model.Item.TryGetString("Title", out string title))
60 {
61 <span>@title</span>
62 }
63 <div class="mini-cart-quantity text-xs bold pe-none @jsCartClass" @cartId data-order-context="@cartContext">
64 @if (productsCount > 0)
65 {
66 @if (!string.IsNullOrEmpty(totalPrice))
67 {
68 <div class="">
69 @totalPrice
70 </div>
71 }
72
73 <div class="d-flex text-xs medium">
74 <div><span class="bold pe-1">@productsCount</span>@(productsCount == 1 ? Translate("Custom.Header.MiniCart.Product", "product") : Translate("Custom.Header.MiniCart.Products", "products"))</div>
75 @if (samplesCount > 0)
76 {
77 <div class="ps-1">/ <span class="bold pe-1">@samplesCount</span>@(samplesCount == 1 ? Translate("Custom.Header.MiniCart.Sample", "sample") : Translate("Custom.Header.MiniCart.Samples", "samples"))</div>
78 }
79 </div>
80
81 } else if (samplesCount > 0)
82 {
83 <div class="text-xs bold">
84 @Translate("Custom.Header.MiniCart.FreeSamples", " Free samples")
85 </div>
86
87 <div class="text-xs medium"><span class="bold pe-1">@samplesCount</span>@(samplesCount == 1 ? Translate("Custom.Header.MiniCart.Sample", "sample") : Translate("Custom.Header.MiniCart.Samples", "samples"))</div>
88 }
89 </div>
90 </a>
91 </div>
92
93 @* Offcanvas minicart *@
94 @if ((Model.Item?.TryGetString("OffcanvasMinicartBehaviour", out string offcanvasMiniCartBehaviour) ?? false) && (!offcanvasMiniCartBehaviour.Equals("0")) && (cartSummaryPageId > 0) && !userHasPendingQuote)
95 {
96 @* Open MiniCart when the cart is updated *@
97 <script type="module">
98 document.addEventListener('updated.swift.cart', (event) => {
99 let orderContext = event?.detail?.formData?.get("OrderContext");
100 updateCartSummary(orderContext);
101
102 let offcanvasMiniCartBehaviourJs = "@offcanvasMiniCartBehaviour";
103
104 if (event?.detail?.formData?.get("MiniCartBehaviour")) {
105 offcanvasMiniCartBehaviourJs = event?.detail?.formData?.get("MiniCartBehaviour");
106 }
107
108 if (offcanvasMiniCartBehaviourJs == "2" || offcanvasMiniCartBehaviourJs == "3") {
109 openMiniCartOffcanvas();
110 }
111 });
112 </script>
113
114 if (offcanvasMiniCartBehaviour == "1" || offcanvasMiniCartBehaviour == "3")
115 {
116 @* Open MiniCart when toggle is clicked *@
117 <script type="module">
118 let miniCartToggles = document.querySelectorAll('.mini-cart-quantity');
119 miniCartToggles?.forEach((toggle) => {
120 toggle.parentElement.addEventListener('click', (event) => {
121 event.preventDefault();
122 let orderContext = toggle.dataset?.orderContext;
123 updateCartSummary(orderContext);
124
125 openMiniCartOffcanvas();
126 });
127 });
128 </script>
129 }
130
131 <script>
132 const updateCartSummary = (orderContext) => {
133 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas');
134 swift.PageUpdater.UpdateFromUrlInline(event, '/Default.aspx?ID=@(cartSummaryPageId)&CartType=minicart&RequestPageID=@(Pageview.Page.ID)&OrderContext=' + orderContext +'', 'Swift-v2_CartSummary.cshtml', dynamicOffcanvas);
135 };
136 const openMiniCartOffcanvas = () => {
137 const dynamicOffcanvas = document.getElementById('DynamicOffcanvas');
138 const miniCartOffcanvas = bootstrap.Offcanvas.getOrCreateInstance(dynamicOffcanvas);
139 dynamicOffcanvas.classList.add('overflow-y-auto');
140
141 if (!miniCartOffcanvas._isShown) {
142 miniCartOffcanvas.show();
143 hideActiveOffcanvases(miniCartOffcanvas);
144 }
145 };
146 const hideActiveOffcanvases = (miniCartOffcanvas) => {
147 let activeOffcanvases = document.querySelectorAll('.offcanvas.show');
148 activeOffcanvases?.forEach((offCanvas) => {
149 offCanvas = bootstrap.Offcanvas.getInstance(offCanvas);
150 if (offCanvas !== miniCartOffcanvas) {
151 offCanvas.hide();
152 }
153 });
154 };
155 </script>
156 }