Error executing template "Designs/vibocold/_parsed/standard.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at Vibocold.CustomModules.Helpers.GroupHelper.IsGroupNoIndex(Group group) in C:\repo\Vibocold\Vibocold\CustomModules\Helpers\GroupHelper.cs:line 37
at Vibocold.CustomModules.Helpers.GroupHelper.IsGroupNoIndex(String groupId, String languageId) in C:\repo\Vibocold\Vibocold\CustomModules\Helpers\GroupHelper.cs:line 32
at CompiledRazorTemplates.Dynamic.RazorEngine_82c495e677974bbeaf1b5294aea0acac.Execute() in D:\dynamicweb.net\Solutions\Vibocold2021.staging\Files\Templates\Designs\vibocold\_parsed\standard.parsed.cshtml:line 118
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.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
2 @using Dynamicweb;
3 @using Vibocold.CustomModules.Helpers
4
5 <!doctype html>
6 @{
7 string charset = "UTF-8";
8 bool useShortLang = Model.Area.Item.GetBoolean("MiscSettings.UseShort_HTMLLang");
9 string htmlLang = Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Area.LongLang")).Value;
10 htmlLang = useShortLang && htmlLang.IndexOf("-") != -1 ? htmlLang.Substring(0, htmlLang.IndexOf("-")) : htmlLang;
11
12 var productId = Context.Current.Request["ProductID"];
13 var groupId = Context.Current.Request["GroupID"];
14
15 var darkMode = false;
16
17 if (!string.IsNullOrWhiteSpace(productId))
18 {
19 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(productId, "", Pageview.Area.EcomLanguageId);
20
21 darkMode = product?.DefaultGroup?.IsDarkMode() == true;
22 }
23
24 if (!string.IsNullOrWhiteSpace(groupId))
25 {
26 var group = Dynamicweb.Ecommerce.Services.ProductGroups.GetGroup(groupId, Pageview.Area.EcomLanguageId);
27
28 darkMode = group.IsDarkMode();
29 }
30
31 string pageId = Pageview.Page.ID.ToString();
32
33 string themeName = Model.PropertyItem.GetItem("Theme")?.GetString("Theme")?.ToLower();
34 string templateName = Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Pageview.LayoutTemplate")).Value.Replace("test.", "").Replace(".cshtml", "").Replace(".html", "").Replace(".", "").ToLower();
35 string bodyClass = "standy " + templateName + "-page " + themeName + " " + Pageview.Page.NavigationTag;
36
37 int extranetParagraphId = Model.Area.Item.GetInt32("ExtranetParagraph");
38 string piwikScript = Model.Area.Item.GetItem("Piwik")?.GetString("PiwikScript");
39
40 var miniCartCookie = Context.Current.Request.Cookies["miniCartOpen"]?.Value;
41 bool cartOpen = !string.IsNullOrEmpty(miniCartCookie) && bool.TryParse(miniCartCookie, out bool miniCartCookieBool) ? miniCartCookieBool : false;
42 string cartOpenStyle = cartOpen ? "margin-top: 0px; position: fixed; overflow: hidden; width: 100%;" : string.Empty;
43 string cartOpenClass = cartOpen ? "scoll-lock" : string.Empty;
44
45 }
46 <html lang="@htmlLang" style="@cartOpenStyle" class="@cartOpenClass">
47 <head data-settings="disableparsing:true">
48 <script>
49 window.dataLayer = window.dataLayer || [];
50 </script>
51 <meta charset="@charset">
52 <meta http-equiv="X-UA-Compatible" content="IE=edge">
53 <meta name="viewport" content="width=device-width, initial-scale=1.0">
54 <title>@Model.Title</title>
55 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
56
57 @{
58 string pageTitle = Model.Title;
59 string pageOGTitle = Model.PropertyItem.GetItem("SocialMedia")?.GetString("Title");
60
61 string primarydomain = Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Request.Scheme")).Value +"://" + Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Area.Primarydomain")).Value;
62 string pageDescription = Model.Description;
63 string pageOGDescription = Model.PropertyItem.GetItem("SocialMedia")?.GetString("Description");
64
65 string ogSiteName = Model.Area.Item.GetItem("SocialMedia")?.GetString("SiteName");
66 string ogTitle = !string.IsNullOrWhiteSpace(pageOGTitle) ? pageOGTitle : pageTitle;
67 string ogUrl = primarydomain + Pageview.SearchFriendlyUrl;
68 string ogDescription = !string.IsNullOrWhiteSpace(pageOGDescription) ? pageOGDescription : pageDescription; ;
69
70 bool areaOGImageHasFocalPoint = Model.Area.Item.GetItem("SocalMedia")?.GetFile("DefaultImage")?.HasFocalPoint() == true;
71 string areaOGImage = "/admin/public/getimage.ashx?Image=" + Model.Area.Item.GetItem("SocialMedia").GetString("DefaultImage");
72 areaOGImage = areaOGImageHasFocalPoint ? areaOGImage + "&Crop=7&" + Model.Area.Item.GetItem("SocalMedia").GetItem("DefaultImage").GetString("FocalPointParameters") : "&Crop=0";
73
74 bool pageOGImageHasFocalPoint = Model.PropertyItem.GetItem("SocialMedia")?.GetFile("Image")?.HasFocalPoint() == true;
75 string pageOGImage = "/admin/public/getimage.ashx?Image=" + Model.PropertyItem.GetItem("SocialMedia")?.GetString("Image");
76 pageOGImage = pageOGImageHasFocalPoint ? pageOGImage + "&Crop=7&" + Model.PropertyItem.GetItem("SocialMedia")?.GetItem("Image")?.GetString("FocalPointParameters") : "&Crop=0";
77
78 string ogImage = !string.IsNullOrWhiteSpace(Model.PropertyItem.GetItem("SocialMedia")?.GetString("Image")) ? pageOGImage : areaOGImage;
79
80 string facebookDomainVerificationId = Model.Area.Item.GetString("Item.Area.FacebookDomainVerification_Id");
81 }
82 <meta property="og:site_name" content="@ogSiteName" />
83 <meta property="og:title" content="@ogTitle" />
84 <meta property="og:url" content="@ogUrl" />
85 <meta property="og:description" content="@ogDescription" />
86 <meta property="og:image" content="@ogImage" />
87
88 @if (!string.IsNullOrWhiteSpace(facebookDomainVerificationId))
89 {
90 <meta name="facebook-domain-verification" content="facebookDomainVerificationId" />
91 }
92 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
93
94 @{
95 string cssEditDate = System.IO.File.GetLastWriteTime(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/css/main.min.css")).ToString();
96 cssEditDate = cssEditDate.Replace(":", "").Replace(" ", "").Replace("-", "");
97 }
98 <link rel="stylesheet" href="/files/templates/designs/vibocold/assets/css/main.min.css?v=@cssEditDate" />
99 @using Dynamicweb.Frontend
100 @using Vibocold.CustomModules.Helpers
101 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
102
103 @{
104 string sfu = Pageview.SearchFriendlyUrl;
105
106 var sfuProductId = Dynamicweb.Context.Current.Request["ProductID"];
107 var sfuGroupId = Dynamicweb.Context.Current.Request["GroupID"];
108 var noindex = false;
109 var languageId = PageView.Current().Area.EcomLanguageId;
110
111 if (!string.IsNullOrWhiteSpace(sfuProductId))
112 {
113 noindex = ProductHelper.IsProductNoIndex(sfuProductId, languageId);
114 }
115
116 if (!string.IsNullOrWhiteSpace(sfuGroupId))
117 {
118 noindex = GroupHelper.IsGroupNoIndex(sfuGroupId, languageId);
119 }
120
121 }
122 @Model.MetaTags
123 @if (System.Web.HttpContext.Current.Request.Url.Host.Contains("staging.vibocold.dk") || noindex)
124 {
125 <meta name="robots" content="noindex,nofollow" />
126 }
127 @foreach (var language in Model.Area.Languages)
128 {
129 string url = FriendlyUrlHelper.GetFriendlyPageUrl(Model.ID, language.Culture);
130
131 var groupUrl = FriendlyUrlHelper.GetFriendlyGroupUrl(Dynamicweb.Context.Current.Request["GroupID"], Model.ID, language.Culture);
132 var productUrl = FriendlyUrlHelper.GetFriendlyProductUrl(sfuProductId, Model.ID, language.Culture);
133
134 if (!string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request["GroupID"]) && string.IsNullOrWhiteSpace(productUrl))
135 {
136 url = groupUrl;
137 }
138 else if (!string.IsNullOrWhiteSpace(sfuProductId))
139 {
140 url = productUrl;
141 }
142
143 if (language.PrimaryDomain.IndexOf("dev.vibocold.dk") == -1 && !string.IsNullOrWhiteSpace(url))
144 {
145 if (language.IsCurrent && !Model.MetaTags.Contains("canonical"))
146 {
147 <link rel="canonical" href="@url" />
148 }
149 <link rel="alternate" href='@url' hreflang='@language.Culture' />
150
151 if(language.Culture == "en-GB")
152 {
153 <link rel="alternate" href='@url' hreflang='x-default' />
154 }
155 }
156 }
157 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
158
159 @{
160 string schemaOrgName = Model.Area.Item.GetItem("Organization")?.GetString("Name");
161 string schemaOrgAddress = Model.Area.Item.GetItem("Organization")?.GetString("Address");
162 string schemaOrgPostalCode = Model.Area.Item.GetItem("Organization")?.GetString("ZipCode");
163 string schemaOrgCity = Model.Area.Item.GetItem("Organization")?.GetString("City");
164 string schemaOrgRegion = Model.Area.Item.GetItem("Organization")?.GetString("Region");
165 string schemaOrgCountry = Model.Area.Item.GetItem("Organization")?.GetString("Country");
166 string schemaOrgPhone = Model.Area.Item.GetItem("Organization")?.GetString("Phone");
167 string schemaOrgEmail = Model.Area.Item.GetItem("Organization")?.GetString("Email");
168 string linkedInURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("LinkedIn");
169 string facebookURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("Facebook");
170 string youtubeURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("YouTube");
171 string instagramURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("Instagram");
172 string salePhone = Model.Area.Item.GetItem("Footer")?.GetString("PhoneSales");
173 string saleEmail = Model.Area.Item.GetItem("Footer")?.GetString("EmailSales");
174 string servicePhone = Model.Area.Item.GetItem("Footer")?.GetString("PhoneService");
175 string serviceEmail = Model.Area.Item.GetItem("Footer")?.GetString("EmailService");
176
177 string sameAs = "";
178
179 if (!string.IsNullOrWhiteSpace(linkedInURL))
180 {
181 sameAs += "\"" + linkedInURL + "\"";
182 }
183
184 if (!string.IsNullOrWhiteSpace(facebookURL))
185 {
186 if (sameAs.Length > 0)
187 {
188 sameAs += ",\"" + facebookURL + "\"";
189 }
190 else
191 {
192 sameAs += "\"" + facebookURL + "\"";
193 }
194 }
195
196 if (!string.IsNullOrWhiteSpace(youtubeURL))
197 {
198 if (sameAs.Length > 0)
199 {
200 sameAs += ",\"" + youtubeURL + "\"";
201 }
202 else
203 {
204 sameAs += "\"" + youtubeURL + "\"";
205 }
206 }
207
208 if (!string.IsNullOrWhiteSpace(instagramURL))
209 {
210 if (sameAs.Length > 0)
211 {
212 sameAs += ",\"" + instagramURL + "\"";
213 }
214 else
215 {
216 sameAs += "\"" + instagramURL + "\"";
217 }
218 }
219
220 var contactPoints = new List<string>();
221
222 // Sales contact point
223 if (!string.IsNullOrWhiteSpace(salePhone) || !string.IsNullOrWhiteSpace(saleEmail))
224 {
225 var salesContact = $@"
226 {{
227 ""@@type"": ""ContactPoint"",
228 ""telephone"": ""{salePhone}"",
229 ""email"": ""{saleEmail}"",
230 ""contactType"": ""sales"",
231 ""areaServed"": ""DK"",
232 ""availableLanguage"": [""Danish"", ""English""]
233 }}";
234 contactPoints.Add(salesContact.Trim());
235 }
236
237 // Service contact point
238 if (!string.IsNullOrWhiteSpace(servicePhone) || !string.IsNullOrWhiteSpace(serviceEmail))
239 {
240 var serviceContact = $@"
241 {{
242 ""@@type"": ""ContactPoint"",
243 ""telephone"": ""{servicePhone}"",
244 ""email"": ""{serviceEmail}"",
245 ""contactType"": ""service"",
246 ""areaServed"": ""DK"",
247 ""availableLanguage"": [""Danish""]
248 }}";
249 contactPoints.Add(serviceContact.Trim());
250 }
251 }
252 <script type="application/ld+json">
253 {
254 "@@context": "http://schema.org",
255 "@@type": "Organization",
256 "name": "@schemaOrgName",
257 "address": {
258 "@@type": "PostalAddress",
259 "streetAddress": "@schemaOrgAddress",
260 "postalCode": "@schemaOrgPostalCode",
261 "addressLocality": "@schemaOrgCity",
262 "addressRegion": "@schemaOrgRegion",
263 "addressCountry": "@schemaOrgCountry"
264 },
265 "url": "@System.Web.HttpContext.Current.Request.Url.Scheme@("://")@System.Web.HttpContext.Current.Request.Url.Host",
266 "telephone": "@schemaOrgPhone",
267 "email": "@schemaOrgEmail",
268 "description": "Vibocold - Totalløsninger i køl, frys og varmeregulerende produkter",
269 "vatID": "DK71383911",
270 "sameAs": [
271 @sameAs
272 ]
273 @if (contactPoints.Count > 0)
274 {
275 @:,"contactPoint": [
276 @(string.Join(",", contactPoints));
277 @:]
278 }
279 }
280 </script>
281 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
282
283 @{
284 string ipAddress = System.Web.HttpContext.Current.Request.UserHostAddress;
285 string googleSiteVerificationID = Model.Area.Item.GetItem("Google").GetString("SiteVerification_ID");
286 string primaryGoogleTagManagerID = Model.Area.Item.GetItem("Google").GetString("Primary_Google_Tag_Manager_ID");
287 string secondaryGoogleTagManagerID = Model.Area.Item.GetItem("Google").GetString("Secondary_Google_Tag_Manager_ID");
288 }
289 <script>
290 dataLayer = [{
291 'ipaddress': '@ipAddress'
292 }];
293 </script>
294 @if (!string.IsNullOrWhiteSpace(googleSiteVerificationID))
295 {
296 <meta name="google-site-verification" content="@googleSiteVerificationID" />
297 }
298 @if (!string.IsNullOrEmpty(primaryGoogleTagManagerID))
299 {
300 <script>
301 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
302 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
303 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
304 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
305 })(window, document, 'script', 'dataLayer', '@primaryGoogleTagManagerID');
306 </script>
307 }
308 @if (!string.IsNullOrEmpty(secondaryGoogleTagManagerID))
309 {
310 <script>
311 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
312 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
313 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
314 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
315 })(window, document, 'script', 'dataLayer', '@secondaryGoogleTagManagerID');
316 </script>
317 }
318 @SnippetStart("GoogleNoScript")
319 @if (!string.IsNullOrEmpty(primaryGoogleTagManagerID))
320 {
321 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@primaryGoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
322 }
323 @if (!string.IsNullOrEmpty(secondaryGoogleTagManagerID))
324 {
325 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@secondaryGoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
326 }
327 @SnippetEnd("GoogleNoScript")
328 @RenderSnippet("PreloadPrefetchPreconect")
329 <link rel="icon" type="image/x-icon" href="/Files/Images/Hjemmeside/Graphic/favicon.ico">
330 <link href="/Files/Images/Hjemmeside/Graphic/apple-touch-icon.png" rel="icon" type="image/png">
331 </head>
332 <body class="@bodyClass" data-page-id="@pageId">
333 @{
334 int slideInCart = Model.Area.Item.GetInt32("SlideInCartParagraph");
335
336 if (slideInCart > 0)
337 {
338 <text>@RenderParagraphContent(slideInCart)</text>
339 }
340 }
341 @piwikScript
342 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
343
344 @SnippetStart("PiwikCartUpdate")
345 <script type="text/javascript">
346 window._paq = window._paq || [];
347 var dataLayerObj = dataLayer.find(function (obj) { return obj.event === "cart_update" });
348 if (dataLayerObj) {
349 var cart_amount = dataLayerObj.cart_amount;
350 var products = dataLayerObj.products;
351 products.forEach(function (product) {
352 _paq.push(["addEcommerceItem", product.sku, product.name, product.category, product.price, product.quantity]);
353 });
354 _paq.push(["trackEcommerceCartUpdate", cart_amount]);
355 }
356 </script>
357 @SnippetEnd("PiwikCartUpdate")
358 @SnippetStart("PiwikOrderConfirm")
359 <script type="text/javascript">
360 window._paq = window._paq || [];
361 var dataLayerObj = dataLayer.find(function (obj) { return obj.event === "order_confirmation" });
362 if (dataLayerObj) {
363 var orderId = dataLayerObj.order_id;
364 var grandTotal = dataLayerObj.grand_total;
365 var subTotal = dataLayerObj.subtotal;
366 var tax = dataLayerObj.tax;
367 var shipping = dataLayerObj.shipping;
368 var discount = dataLayerObj.discount;
369 var products = dataLayerObj.products;
370 products.forEach(function (product) {
371 _paq.push(["addEcommerceItem", product.sku, product.name, product.category, product.price, product.quantity]);
372 });
373 _paq.push(["trackEcommerceOrder", orderId, grandTotal, subTotal, tax, shipping, discount]);
374 }
375 </script>
376 @SnippetEnd("PiwikOrderConfirm")
377 @RenderSnippet("GoogleNoScript")
378 <a href="#main" class="skip-to-main">@Translate("Translate_Skip_to_main_content")</a>
379 @using Dynamicweb.Frontend
380 @using Vibocold.CustomModules.Helpers
381 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
382
383 @{
384 int orderlineCount = Convert.ToInt32(Model.Cart?.TotalProductsCount);
385
386 bool hasUser = Model.CurrentUser.ID > 0;
387 Dynamicweb.Security.UserManagement.User user = null;
388 if (hasUser)
389 {
390 user = Dynamicweb.Security.UserManagement.User.GetUserByID(Model.CurrentUser.ID);
391 }
392 string secondaryCssClass = "navigation-secondary";
393 string searchPageId = Model.Area.Item.GetItem("MiscSettings")?.GetString("SearchPage");
394 string searchAction = "/Default.aspx?Id=" + searchPageId;
395
396 if (orderlineCount > 0 && hasUser)
397 {
398 secondaryCssClass += " navigation-secondary--has-cart navigation-secondary--has-user";
399 }
400
401 }
402 <nav class="navigation">
403 <a href="/" class="navigation__logo">
404 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg")))
405 {
406 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))</text>
407 }
408 </a>
409 @{
410 var navigationSettings = new Dynamicweb.Frontend.Navigation.NavigationSettings()
411 {
412 RootAreaId = 0,
413 RootPageId = 0,
414 StartLevel = 1,
415 StopLevel = 3,
416 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All
417 };
418
419 var navigationTemplate = "master/partials/navigation.desktop.cshtml";
420
421 }
422 <div class="navigation__desktop">
423 @Navigation.RenderNavigation(navigationTemplate, navigationSettings)
424 </div>
425 <div class="navigation__mobile">
426 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
427
428 <div class="dwnavigation onlyMobile" id="primaryNavigation" data-settings="template:ul-li.xslt;startlevel:1;endlevel:3;expandmode:all;id:navigation-primary"></div>
429 @RenderNavigation(
430 new
431 {
432 StartLevel = 1,
433 EndLevel = 3,
434 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All,
435 id = "navigation-primary",
436 Template = "ul-li.xslt"
437 }
438 )
439 </div>
440 <form class="navigation__search form" action="@searchAction">
441 <input type="hidden" name="Id" value="@searchPageId" />
442 <div class="form__field-wrap form__field-wrap--search">
443 <input type="text" name="q" placeholder="@Translate("Translate_Navigation_Search-placeholder")" class="form__field" />
444 <input type="hidden" name="lang" placeholder="Søg" class="form__field" value="@Pageview.Area.EcomLanguageId" />
445 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/search.svg")))
446 {
447 <span class="icon icon-search">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/search.svg"))</span>
448 }
449 </div>
450 </form>
451 <ul class="@secondaryCssClass">
452 @* RP: TMP REMOVED AS WE DON'T HAVE "TILBUDSLISTE" JUST YET *@
453 <!--li class="navigation-secondary__item navigation-secondary__item--favourites">
454 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/heart.svg")))
455 {
456 <span class="icon icon-heart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/heart.svg"))</span>
457 }
458 <span class="navigation-secondary__item-counter">0</span>
459 </li-->
460 <li class="navigation-secondary__item navigation-secondary__item--language">
461 <select onchange="location = this.options[this.selectedIndex].value;" class="navigation-secondary__language-select">
462
463 @{
464 IEnumerable<Dynamicweb.Content.Area> areas = Dynamicweb.Services.Areas.GetAreas().OrderByDescending(a => a.ID == Model.Area.ID);
465 var scheme = !string.IsNullOrEmpty(Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Request.Scheme")).Value + "://") ? Pageview.GlobalTags.FirstOrDefault(t => t.Name.Equals("Global:Request.Scheme")).Value + "://" : "https://";
466 }
467 @foreach (Dynamicweb.Content.Area area in areas)
468 {
469 if (!string.IsNullOrEmpty(area.DomainLock))
470 {
471
472 string url = FriendlyUrlHelper.GetFriendlyPageUrl(Model.ID, area.Culture);
473
474 var groupUrl = FriendlyUrlHelper.GetFriendlyGroupUrl(Dynamicweb.Context.Current.Request["GroupID"], Model.ID, area.Culture);
475 var productUrl = FriendlyUrlHelper.GetFriendlyProductUrl(Dynamicweb.Context.Current.Request["ProductID"], Model.ID, area.Culture);
476
477 if (!string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request["GroupID"]))
478 {
479 url = groupUrl;
480 }
481 else if (!string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request["ProductID"]))
482 {
483 url = productUrl;
484 }
485
486 if (string.IsNullOrWhiteSpace(url))
487 {
488 url = scheme + area.DomainLock;
489 }
490
491 <option class="navigation-secondary__language @(area.ID == Model.Area.ID ? "navigation-secondary__language--active" : "")" value="@(url)">@(area.Culture.Split('-')?.FirstOrDefault()?.ToUpper())</option>
492 }
493 }
494
495 </select>
496 </li>
497
498 <li class="navigation-secondary__item navigation-secondary__item--cart" data-action="slide-in" data-target="slideInCart">
499 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/cart.svg")))
500 {
501 <span class="icon icon-cart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/cart.svg"))</span>
502 }
503 @if (orderlineCount > 0)
504 {
505 <span class="navigation-secondary__item-counter">@orderlineCount</span>
506 }
507 </li>
508 @if (hasUser)
509 {
510 <li class="navigation-secondary__item navigation-secondary__item--user" data-action="slide-in" data-target="signOut">
511 @{
512 string userFirstName = user.FirstName;
513 string userLastName = user.LastName;
514 string userCompany = user.Company;
515 string user_UserName = user.UserName;
516 string userInitials = string.Empty;
517 if (userFirstName?.Length > 0)
518 {
519 userInitials = userInitials + userFirstName?.Substring(0, 1);
520 }
521 if (userLastName?.Length > 0)
522 {
523 userInitials = userInitials + userLastName?.Substring(0, 1);
524 }
525 if (userInitials.Length == 0 && user_UserName.Length > 1)
526 {
527 userInitials = user_UserName.Substring(0, 2);
528 }
529 if (userInitials.Length == 0 && userCompany.Length > 1)
530 {
531 userInitials = userCompany.Substring(0, 2);
532 }
533 }
534 @if (userInitials.Length > 0)
535 {
536 <div class="navigation-secondary__profile-wrapper">
537 <span class="navigation-secondary__initial">@userInitials.ToUpper()</span>
538 </div>
539 }
540 else if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg")))
541 {
542 <div class="navigation-secondary__profile-wrapper">
543 <span class="icon icon-profile icon-profile-logged-in">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile-solid.svg"))</span>
544 </div>
545 }
546
547 @SnippetStart("SlideIns")
548 @{
549 string close = Translate("Translate_Slide-in_close");
550 string signOutHeadline = Translate("Translate_Sign-out_headline");
551 string signOutText = Translate("Translate_Sign-out_text");
552 string userName = Model.CurrentUser.Name;
553 string userUserName = Model.CurrentUser.UserName;
554 string signOutButtonText = Translate("Translate_Sign-out_button-text");
555 string redirectUrl = RedirectHelper.GetLoginReturnUrl();
556 string formAction = "/Admin/Public/ExtranetLogoff.aspx?Redirect=" + redirectUrl;
557
558 string welcomeText = Translate("Translate_Sign-out_welcome-text");
559 string welcomeSummary = Translate("Translate_Sign-out_summary-text");
560 Dynamicweb.Content.PageService pageService = new Dynamicweb.Content.PageService();
561
562 int customerCenterPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "Kundecenter")?.ID ?? 0;
563 var productsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "ProductList")?.ID ?? 0;
564 var myProductsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "MyProducts")?.ID ?? 0;
565 var sparepartsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "Spareparts")?.ID ?? 0;
566
567 IEnumerable<Dynamicweb.Content.Page> customerCenterPages = pageService.GetPagesByParentID(customerCenterPageId);
568
569 var myProductsUrl = SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={myProductsPageId}&GroupID={"GROUP368"}", areas.FirstOrDefault(x => x.ID == Model.Area.ID).EcomLanguageId);
570 var sparepartsPageUrl = SearchEngineFriendlyURLs.GetFriendlyUrl(sparepartsPageId);
571
572 bool hasMyProducts = false;
573 var _assortmentService = new Dynamicweb.Ecommerce.Assortments.AssortmentService();
574 var _productService = new Dynamicweb.Ecommerce.Products.ProductService();
575
576 if (UserProductAccessHelper.IsUserVibocoldUser(user))
577 {
578 var myProducts = _productService.GetProductsByGroupId("GROUP368", false, Pageview.Area.EcomLanguageId, false);
579 var userAssortmentsIds = _assortmentService.GetAssortmentIdsByUser(user);
580 hasMyProducts = myProducts.Where(mp => _assortmentService.GetAssortmentsByProduct(mp).Where(a => userAssortmentsIds.Contains(a.ID)).Any()).Any();
581 }
582 else
583 {
584 var myProducts = _productService.GetProductsByGroupId("GROUP368", true, Pageview.Area.EcomLanguageId, false);
585 var userAssortmentsIds = _assortmentService.GetAssortmentIdsByUser(user);
586 hasMyProducts = myProducts.Where(mp => mp.Active == true && mp.Discontinued == false && _assortmentService.GetAssortmentsByProduct(mp).Where(a => userAssortmentsIds.Contains(a.ID)).Any()).Any();
587 }
588 }
589 <div class="slide-in" id="signOut">
590 <div class="slide-in__content slide-in__content--center-content customer-center module-white">
591 <div class="slide-in__close">
592 <span></span>
593 <small>@close</small>
594 </div>
595 <div class="slide-in__headline new-style-h3">@welcomeText @user.FirstName</div>
596 <p class="customer-center__user-container">@user.Company (@userUserName)</p>
597 <p class="customer-center__welcome-summary">@welcomeSummary</p>
598
599 @if (customerCenterPages.Any())
600 {
601 <ul class="customer-center__list">
602 @foreach (var page in customerCenterPages)
603 {
604 <li class="customer-center__item">
605 <a class="btn btn-cta customer-center__link" href="@page.GetPageHrefValue()">
606 <span class="btn__text">@page.GetDisplayName()</span>
607 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg")))
608 {
609 <span class="icon icon-arrow-large">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))</span>
610 }
611 </a>
612 </li>
613 }
614 @if (!string.IsNullOrWhiteSpace(myProductsUrl) && hasMyProducts)
615 {
616 <li class="customer-center__item my-products-item">
617 <a class="btn btn-cta customer-center__link" href="@myProductsUrl">
618 <span class="btn__text">@Translate("Translate_Slide-in_My_Products")</span>
619 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg")))
620 {
621 <span class="icon icon-arrow-large">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))</span>
622 }
623 </a>
624 </li>
625 }
626 @if (UserProductAccessHelper.IsUserVibocoldUser(user))
627 {
628 <li class="customer-center__item">
629 <a class="btn btn-cta customer-center__link" href="@sparepartsPageUrl">
630 <span class="btn__text">@Translate("Translate_Slide-in_Spareparts")</span>
631 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg")))
632 {
633 <span class="icon icon-arrow-large">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))</span>
634 }
635 </a>
636 </li>
637 }
638 </ul>
639 }
640 <form class="form form--login" name="ExtranetUserForm" id="ExtranetUserForm" method="post" action="@formAction">
641 <div class="form__input-container">
642 <button type="submit" class="btn btn-primary">@signOutButtonText</button>
643 </div>
644 </form>
645 </div>
646 </div>
647 @SnippetEnd("SlideIns")
648 </li>
649 }
650 else
651 {
652 <li class="navigation-secondary__item" data-action="slide-in" data-target="signIn">
653 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg")))
654 {
655 <span class="icon icon-profile">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg"))</span>
656 }
657 </li>
658 }
659 </ul>
660 <button class="navigation__btn"><span></span></button>
661 </nav>
662 <main id="main" class="@($"{(darkMode ? "darkmode" : "" )}")">
663 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
664
665
666
667 @Model.Placeholder("dwcontent", "content", "default:true;sort:1")
668
669
670 <button class="scroll-top">
671 <span class="scroll-top__icon">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))</span>
672 </button>
673 </main>
674 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
675
676 @{
677 string headlineSales = Model.Area.Item.GetItem("Footer")?.GetString("HeadlineSales");
678 string phoneSales = Model.Area.Item.GetItem("Footer")?.GetString("PhoneSales");
679 string phoneSalesLink = "tel:" + phoneSales.Replace(" ", "");
680 string emailSales = Model.Area.Item.GetItem("Footer")?.GetString("EmailSales");
681 string emailSalesLink = "mailto:" + emailSales.Replace(" ", "");
682 string openingHoursLabel = Model.Area.Item.GetItem("Footer")?.GetString("OpeningHoursLabel");
683
684 string headlineService = Model.Area.Item.GetItem("Footer")?.GetString("HeadlineService");
685 string phoneService = Model.Area.Item.GetItem("Footer")?.GetString("PhoneService");
686 string phoneServiceLink = "tel:" + phoneService.Replace(" ", "");
687 string emailService = Model.Area.Item.GetItem("Footer")?.GetString("EmailService");
688 string emailServiceLink = "mailto:" + emailService.Replace(" ", "");
689
690 string organizationName = Model.Area.Item.GetItem("Organization")?.GetString("Name");
691 string organizationAddress = Model.Area.Item.GetItem("Organization")?.GetString("Address");
692 string organizationZipCode = Model.Area.Item.GetItem("Organization")?.GetString("Zipcode");
693 string organizationCity = Model.Area.Item.GetItem("Organization")?.GetString("City");
694
695 string directionsLink = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Link");
696 string directionsTitle = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Title");
697 string directionsText = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Text");
698
699 string organizationPhone = Model.Area.Item.GetItem("Organization")?.GetString("Phone");
700 string organizationPhoneLink = "tel:" + organizationPhone.Replace(" ", "");
701 string organizationEmail = Model.Area.Item.GetItem("Organization")?.GetString("Email");
702 string organizationEmailLink = "mailto:" + organizationEmail.Replace(" ", "");
703
704 string cvrLabel = Model.Area.Item.GetItem("Footer")?.GetString("CVRLabel");
705 string cvr = Model.Area.Item.GetItem("Footer")?.GetString("CVR");
706
707 string controlReportLink = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Link");
708 string controlReportTitle = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Title");
709 string controlReportText = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Text");
710 string linkedInUrl = Model.Area.Item.GetItem("SocialMedia").GetString("LinkedIn");
711 string facebookUrl = Model.Area.Item.GetItem("SocialMedia").GetString("Facebook");
712 string youTubeUrl = Model.Area.Item.GetItem("SocialMedia").GetString("YouTube");
713
714 @* This is for the header on the contact page. It needs the info from sales + service and they are not accesible in the paragraph template like here *@
715 <text>
716 @SnippetStart("HeaderContactInfo")
717 <li class="header__contact-info-item">
718 <span class="preline">@headlineSales</span>
719 <a class="header__contact-info-link" href="@phoneSalesLink">@phoneSales</a>
720 <a class="header__contact-info-link" href="@emailSalesLink">@emailSales</a>
721 </li>
722 <li class="header__contact-info-item">
723 <span class="preline">@headlineService</span>
724 <a class="header__contact-info-link" href="@phoneServiceLink">@phoneService</a>
725 <a class="header__contact-info-link" href="@emailServiceLink">@emailService</a>
726 <span class="header__contact-info-byline">
727 <span>@openingHoursLabel</span>
728 @foreach (var openingHour in Model.Area.Item.GetItem("Footer").GetItems("OpeningHours"))
729 {
730 <span>@openingHour.GetString("Text")</span>
731 }
732 </span>
733 </li>
734 @SnippetEnd("HeaderContactInfo")
735 @SnippetStart("NavigationContactInfo")
736 <div>
737 <span class="preline">@headlineSales</span>
738 <a class="navigation-primary__contact-link" href="@phoneSalesLink">@phoneSales</a>
739 <a class="navigation-primary__contact-link" href="@emailSalesLink">@emailSales</a>
740 </div>
741 <div>
742 <span class="preline">@headlineService</span>
743 <a class="navigation-primary__contact-link" href="@phoneServiceLink">@phoneService</a>
744 <a class="navigation-primary__contact-link" href="@emailServiceLink">@emailService</a>
745 <b class="navigation-primary__opening-hours">
746 <span>@openingHoursLabel</span>
747 @foreach (var openingHour in Model.Area.Item.GetItem("Footer").GetItems("OpeningHours"))
748 {
749 <span>@openingHour.GetString("Text")</span>
750 }
751 </b>
752 </div>
753 @SnippetEnd("NavigationContactInfo")
754 </text>
755 }
756 <footer class="footer module module-blue-dark">
757 <div class="footer__contact">
758 <div class="footer__contact-sale">
759 <span class="preline">@headlineSales</span>
760 <a href="@phoneSalesLink">@phoneSales</a>
761 <a href="@emailSalesLink">@emailSales</a>
762 </div>
763 <div class="footer__contact-service">
764 <span class="preline">@headlineService</span>
765 <a href="@phoneServiceLink">@phoneService</a>
766 <a href="@emailServiceLink">@emailService</a>
767 <div class="footer__contact-service-byline">
768 <span>@openingHoursLabel</span>
769 @foreach (var openingHour in Model.Area.Item.GetItem("Footer").GetItems("OpeningHours"))
770 {
771 <span>@openingHour.GetString("Text")</span>
772 }
773 </div>
774 </div>
775 </div>
776 <nav class="footer__nav">
777 @{
778 int counter = 0;
779
780 foreach (var footerColumn in Model.Area.Item.GetItem("Footer").GetItems("Columns"))
781 {
782 string footerColumnHeadline = footerColumn.GetString("Headline");
783 string footerColumnRichText = footerColumn.GetString("RichText");
784
785 <div class="footer__nav-content">
786 <span class="preline">@footerColumnHeadline</span>
787 @footerColumnRichText
788 @if (counter == 1)
789 {
790 <a href="javascript:CookieConsent.renew();">@Translate("Translate_Cookiepolitik")</a>
791 }
792 </div>
793
794 counter++;
795 }
796 }
797 </nav>
798 <div class="footer__info">
799 <div class="rich-text">
800 <p>
801 @organizationName
802 <br />
803 @organizationAddress
804 <br />
805 @organizationZipCode @organizationCity
806 </p>
807 <p>
808 <a href="@directionsLink" target="_blank" title="@directionsTitle">
809 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/directions.svg")))
810 {
811 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/directions.svg"))</text>
812 }
813 <u>@directionsText</u>
814 </a>
815 </p>
816 <p>
817 <a href="@organizationPhoneLink"><b>@organizationPhone</b></a>
818 <br />
819 <a href="@organizationEmailLink"><b>@organizationEmail</b></a>
820 </p>
821 <p>
822 @cvrLabel @cvr
823 </p>
824 </div>
825 <a href="/" class="footer__logo">
826 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg")))
827 {
828 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))</text>
829 }
830 </a>
831 </div>
832 <div class="footer__socket">
833 @if (!string.IsNullOrWhiteSpace(controlReportLink))
834 {
835 <a href="@controlReportLink" title="@controlReportTitle">
836 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="29" height="33" viewBox="0 0 29 33">
837 <defs>
838 <pattern id="pattern" preserveAspectRatio="none" width="100%" height="100%" viewBox="0 0 57 65">
839 <image width="57" height="65" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAABBCAYAAABraQwpAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwQAADsEBuJFr7QAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC42/Ixj3wAAA31JREFUaEPtm9tLVFEUxsesqKALUkH2FPQSBdlD0EtI2ksPET30klqRZqZdqExnKjUdtURH0y7eMhUMhS46NGmBl5QC659a7W/bPu3Zs7WEs+I47Icf47qc/a3vXOZyZgwRUdpjTXIQmRqj3Q1lFKo6Lx/Dk2Mibe/1G2vSb7IbK6Q5sKOuxPsbebOXA2vSL27Ehyivt1EaOtr1UKT+1BAjf0LU9TwH1qRfHO4ISyP7ntwSYWodedTNvN9Yk35w5+MIZUfLpYlTAy0ildqDfIaoo/fVzzmRSu3xA2vyyrt+2ll/ldZVF1BmuNBDxfl9TaKNQrGFT9KE3gM23b8o84qNkQuS9eEiWcejyqmezOql7cy1UIMO9E72NcucbS7Mi7nRZ5IUPJ6NU9n7AU94OXK7G0S76J+LW+t+Ax3o5fZErXWdysQb2auTFODJIKuu1NsgQ+wh7G3sKaByeb+PZNv80pHkBjrQyxdHEvrIqZkwn8qBXfVlslcnKcjpiNDWmsveBmeH2+X1gmdJUDExSNcnhujZ9y+inULR6XGvlxPoQA+60MccaibMhzlV7/aaYtmrkxTkPI3QttpibwO9ZuPah9deLyfQMbVNVC9eh1NqerBak7iGD7RV0qFYlaCagSq5PnRMbRM2k+DcSCcVjL6gwtGXvoN1sb6paYPVZFBwJvXAmQw4zqQeOJMWmsXrV4l4U4x3IVxgfeiY2iZsJlXf/8DUNlF9fzV5pHP1p2vP4jRxY2ra+GeT7poMOM6kHjiTFnBP5fRgK50ZirGB9Ze7d6PDZjKvt4n2NlWwAx1T24TNJOhdnKH+H7NsYH1T0waryaDgTOqBMxlw2Eziznbx2z66GR9mA+urO+grwWZS/y6DE+iY2iaql+V0bV+YpK5vn9nA+qamDVaTQcGZ1ANnMuCwmdzfctvr5QQ6praJ6vXd5PHuesp6VCq/+OQC60PH1DZhMxkknEk9cCYDjjOpB6s12TqfoPLxQbqbGGED60PH1DZhM6n/HIYT6JjaJqqX5XRtnBmXe5oLrG9q2mA1GRScST1wJgOOM6kHzmTAcSb14GDsHm3Wfj+OF2O9HlQwp5p5y4NLIpVcTwqOPa+l3eLTuNpgLbInWi6srGCy9WtC/kDItvFaITyV+u9RSYECpy0O+4Zw0ZoB82Ju0wtISaQj1mS6YU2mFxT6BabQSfcRL/9gAAAAAElFTkSuQmCC" />
840 </pattern>
841 </defs>
842 <rect id="Kontrolrapport_ikon" data-name="Kontrolrapport ikon" width="29" height="33" fill="url(#pattern)" />
843 </svg>
844 @controlReportText
845 </a>
846 }
847 @if (!string.IsNullOrWhiteSpace(linkedInUrl))
848 {
849 <a href="@linkedInUrl">
850 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/linkedin.svg")))
851 {
852 <span class="icon icon-linkedin">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/linkedin.svg"))</span>
853 }
854 </a>
855 }
856 @if (!string.IsNullOrWhiteSpace(facebookUrl))
857 {
858 <a href="@facebookUrl">
859 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/facebook.svg")))
860 {
861 <span class="icon icon-facebook">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/facebook.svg"))</span>
862 }
863 </a>
864 }
865 @if (!string.IsNullOrWhiteSpace(youTubeUrl))
866 {
867 <a href="@youTubeUrl">
868 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/youtube.svg")))
869 {
870 <span class="icon icon-youtube">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/youtube.svg"))</span>
871 }
872 </a>
873 }
874 </div>
875 </footer>
876 <span class="cursor"><span class="cursor__text"></span></span>
877 @RenderSnippet("SlideIns")
878 @if (extranetParagraphId != 0)
879 {
880 <text>@RenderParagraphContent(extranetParagraphId)</text>
881 }
882 @using System.Web.Configuration;
883
884 @{
885 string jsEditDate = System.IO.File.GetLastWriteTime(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/js/main.min.js")).ToString();
886 jsEditDate = jsEditDate.Replace(":", "").Replace(" ", "").Replace("-", "");
887
888 var config = WebConfigurationManager.OpenWebConfiguration("/");
889 var compilationSection = (CompilationSection)config.GetSection("system.web/compilation");
890
891 bool isDebugMode = compilationSection.Debug;
892 }
893
894 @if (isDebugMode)
895 {
896 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
897 }
898 else
899 {
900 <script src="/files/templates/designs/vibocold/assets/js/vue.min.js"></script>
901 }
902 <script src="/files/templates/designs/vibocold/assets/js/main.min.js?v=@jsEditDate"></script>
903
904 @RenderSnippet("JavaScripts")
905 @RenderSnippet("PiwikCartUpdate")
906 @RenderSnippet("ScriptsBottom")
907 </body>
908 </html>
909