Error executing template "Designs/vibocold/_parsed/productcategories.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at Vibocold.CustomModules.Helpers.GroupHelper.IsGroupNoIndex(Group group)
   at Vibocold.CustomModules.Helpers.GroupHelper.IsGroupNoIndex(String groupId, String languageId)
   at CompiledRazorTemplates.Dynamic.RazorEngine_86b574ccee374112b65d077eec48dcaa.Execute() in D:\dynamicweb.net\Solutions\Vibocold2021.cloud.dynamicweb-cms.com\Files\Templates\Designs\vibocold\_parsed\productcategories.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) 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("OrganizationName"); 161 string schemaOrgAddress = Model.Area.Item.GetItem("Organization")?.GetString("OrganizationAddress"); 162 string schemaOrgPostalCode = Model.Area.Item.GetItem("Organization")?.GetString("OrganizationPostalCode"); 163 string schemaOrgCity = Model.Area.Item.GetItem("Organization")?.GetString("OrganizationCity"); 164 string schemaOrgCountry = Model.Area.Item.GetItem("Organization")?.GetString("OrganizationCountry"); 165 string schemaOrgPhone = Model.Area.Item.GetItem("Organization")?.GetString("OrganizationPhone"); 166 string linkedInURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("LinkedIn"); 167 string facebookURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("Facebook"); 168 string youtubeURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("YouTube"); 169 string instagramURL = Model.Area.Item.GetItem("SocialMedia")?.GetString("Instagram"); 170 171 string sameAs = ""; 172 173 if (!string.IsNullOrWhiteSpace(linkedInURL)) 174 { 175 sameAs += "\"" + linkedInURL + "\""; 176 } 177 178 if (!string.IsNullOrWhiteSpace(facebookURL)) 179 { 180 if (sameAs.Length > 0) 181 { 182 sameAs += ",\"" + facebookURL + "\""; 183 } 184 else 185 { 186 sameAs += "\"" + facebookURL + "\""; 187 } 188 } 189 190 if (!string.IsNullOrWhiteSpace(youtubeURL)) 191 { 192 if (sameAs.Length > 0) 193 { 194 sameAs += ",\"" + youtubeURL + "\""; 195 } 196 else 197 { 198 sameAs += "\"" + @youtubeURL + "\""; 199 } 200 } 201 202 if (!string.IsNullOrWhiteSpace(instagramURL)) 203 { 204 if (sameAs.Length > 0) 205 { 206 sameAs += ",\"" + instagramURL + "\""; 207 } 208 else 209 { 210 sameAs += "\"" + instagramURL + "\""; 211 } 212 } 213 } 214 <script type="application/ld+json"> 215 { 216 "@@context": "http://schema.org", 217 "name": "@schemaOrgName", 218 "address": { 219 "@@type": "PostalAddress", 220 "streetAddress": "@schemaOrgAddress", 221 "postalCode": "@schemaOrgPostalCode", 222 "addressLocality": "@schemaOrgCity", 223 "addressCountry": "@schemaOrgCountry" 224 }, 225 "url": "@System.Web.HttpContext.Current.Request.Url.Scheme@("://")@System.Web.HttpContext.Current.Request.Url.Host", 226 "telephone": "@schemaOrgPhone", 227 "sameAs" : [ 228 @sameAs 229 ]}, 230 } 231 </script> 232 233 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 234 235 @{ 236 string ipAddress = System.Web.HttpContext.Current.Request.UserHostAddress; 237 string googleSiteVerificationID = Model.Area.Item.GetItem("Google").GetString("SiteVerification_ID"); 238 string primaryGoogleTagManagerID = Model.Area.Item.GetItem("Google").GetString("Primary_Google_Tag_Manager_ID"); 239 string secondaryGoogleTagManagerID = Model.Area.Item.GetItem("Google").GetString("Secondary_Google_Tag_Manager_ID"); 240 } 241 <script> 242 dataLayer = [{ 243 'ipaddress': '@ipAddress' 244 }]; 245 </script> 246 @if (!string.IsNullOrWhiteSpace(googleSiteVerificationID)) 247 { 248 <meta name="google-site-verification" content="@googleSiteVerificationID" /> 249 } 250 @if (!string.IsNullOrEmpty(primaryGoogleTagManagerID)) 251 { 252 <script> 253 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 254 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 255 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 256 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 257 })(window, document, 'script', 'dataLayer', '@primaryGoogleTagManagerID'); 258 </script> 259 } 260 @if (!string.IsNullOrEmpty(secondaryGoogleTagManagerID)) 261 { 262 <script> 263 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 264 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 265 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 266 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 267 })(window, document, 'script', 'dataLayer', '@secondaryGoogleTagManagerID'); 268 </script> 269 } 270 @SnippetStart("GoogleNoScript") 271 @if (!string.IsNullOrEmpty(primaryGoogleTagManagerID)) 272 { 273 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@primaryGoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 274 } 275 @if (!string.IsNullOrEmpty(secondaryGoogleTagManagerID)) 276 { 277 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@secondaryGoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 278 } 279 @SnippetEnd("GoogleNoScript") 280 @RenderSnippet("PreloadPrefetchPreconect") 281 <link rel="icon" type="image/x-icon" href="/Files/Images/Hjemmeside/Graphic/favicon.ico"> 282 <link href="/Files/Images/Hjemmeside/Graphic/apple-touch-icon.png" rel="icon" type="image/png"> 283 </head> 284 <body class="@bodyClass" data-page-id="@pageId"> 285 @{ 286 int slideInCart = Model.Area.Item.GetInt32("SlideInCartParagraph"); 287 288 if (slideInCart > 0) 289 { 290 <text>@RenderParagraphContent(slideInCart)</text> 291 } 292 } 293 @piwikScript 294 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 295 296 @SnippetStart("PiwikCartUpdate") 297 <script type="text/javascript"> 298 window._paq = window._paq || []; 299 var dataLayerObj = dataLayer.find(function (obj) { return obj.event === "cart_update" }); 300 if (dataLayerObj) { 301 var cart_amount = dataLayerObj.cart_amount; 302 var products = dataLayerObj.products; 303 products.forEach(function (product) { 304 _paq.push(["addEcommerceItem", product.sku, product.name, product.category, product.price, product.quantity]); 305 }); 306 _paq.push(["trackEcommerceCartUpdate", cart_amount]); 307 } 308 </script> 309 @SnippetEnd("PiwikCartUpdate") 310 @SnippetStart("PiwikOrderConfirm") 311 <script type="text/javascript"> 312 window._paq = window._paq || []; 313 var dataLayerObj = dataLayer.find(function (obj) { return obj.event === "order_confirmation" }); 314 if (dataLayerObj) { 315 var orderId = dataLayerObj.order_id; 316 var grandTotal = dataLayerObj.grand_total; 317 var subTotal = dataLayerObj.subtotal; 318 var tax = dataLayerObj.tax; 319 var shipping = dataLayerObj.shipping; 320 var discount = dataLayerObj.discount; 321 var products = dataLayerObj.products; 322 products.forEach(function (product) { 323 _paq.push(["addEcommerceItem", product.sku, product.name, product.category, product.price, product.quantity]); 324 }); 325 _paq.push(["trackEcommerceOrder", orderId, grandTotal, subTotal, tax, shipping, discount]); 326 } 327 </script> 328 @SnippetEnd("PiwikOrderConfirm") 329 @RenderSnippet("GoogleNoScript") 330 <a href="#main" class="skip-to-main">@Translate("Translate_Skip_to_main_content")</a> 331 @using Dynamicweb.Frontend 332 @using Vibocold.CustomModules.Helpers 333 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 334 335 @{ 336 int orderlineCount = Convert.ToInt32(Model.Cart?.TotalProductsCount); 337 338 bool hasUser = Model.CurrentUser.ID > 0; 339 Dynamicweb.Security.UserManagement.User user = null; 340 if (hasUser) 341 { 342 user = Dynamicweb.Security.UserManagement.User.GetUserByID(Model.CurrentUser.ID); 343 } 344 string secondaryCssClass = "navigation-secondary"; 345 string searchPageId = Model.Area.Item.GetItem("MiscSettings")?.GetString("SearchPage"); 346 string searchAction = "/Default.aspx?Id=" + searchPageId; 347 348 if (orderlineCount > 0 && hasUser) 349 { 350 secondaryCssClass += " navigation-secondary--has-cart navigation-secondary--has-user"; 351 } 352 353 } 354 <nav class="navigation"> 355 <a href="/" class="navigation__logo"> 356 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))) 357 { 358 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))</text> 359 } 360 </a> 361 @{ 362 var navigationSettings = new Dynamicweb.Frontend.Navigation.NavigationSettings() 363 { 364 RootAreaId = 0, 365 RootPageId = 0, 366 StartLevel = 1, 367 StopLevel = 3, 368 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All 369 }; 370 371 var navigationTemplate = "master/partials/navigation.desktop.cshtml"; 372 373 } 374 <div class="navigation__desktop"> 375 @Navigation.RenderNavigation(navigationTemplate, navigationSettings) 376 </div> 377 <div class="navigation__mobile"> 378 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 379 380 <div class="dwnavigation onlyMobile" id="primaryNavigation" data-settings="template:ul-li.xslt;startlevel:1;endlevel:3;expandmode:all;id:navigation-primary"></div> 381 @RenderNavigation( 382 new 383 { 384 StartLevel = 1, 385 EndLevel = 3, 386 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.All, 387 id = "navigation-primary", 388 Template = "ul-li.xslt" 389 } 390 ) 391 </div> 392 <form class="navigation__search form" action="@searchAction"> 393 <input type="hidden" name="Id" value="@searchPageId" /> 394 <div class="form__field-wrap form__field-wrap--search"> 395 <input type="text" name="q" placeholder="@Translate("Translate_Navigation_Search-placeholder")" class="form__field" /> 396 <input type="hidden" name="lang" placeholder="S&oslash;g" class="form__field" value="@Pageview.Area.EcomLanguageId" /> 397 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/search.svg"))) 398 { 399 <span class="icon icon-search">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/search.svg"))</span> 400 } 401 </div> 402 </form> 403 <ul class="@secondaryCssClass"> 404 @* RP: TMP REMOVED AS WE DON'T HAVE "TILBUDSLISTE" JUST YET *@ 405 <!--li class="navigation-secondary__item navigation-secondary__item--favourites"> 406 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/heart.svg"))) 407 { 408 <span class="icon icon-heart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/heart.svg"))</span> 409 } 410 <span class="navigation-secondary__item-counter">0</span> 411 </li--> 412 <li class="navigation-secondary__item navigation-secondary__item--language"> 413 <select onchange="location = this.options[this.selectedIndex].value;" class="navigation-secondary__language-select"> 414 415 @{ 416 IEnumerable<Dynamicweb.Content.Area> areas = Dynamicweb.Services.Areas.GetAreas().OrderByDescending(a => a.ID == Model.Area.ID); 417 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://"; 418 } 419 @foreach (Dynamicweb.Content.Area area in areas) 420 { 421 if (!string.IsNullOrEmpty(area.DomainLock)) 422 { 423 424 string url = FriendlyUrlHelper.GetFriendlyPageUrl(Model.ID, area.Culture); 425 426 var groupUrl = FriendlyUrlHelper.GetFriendlyGroupUrl(Dynamicweb.Context.Current.Request["GroupID"], Model.ID, area.Culture); 427 var productUrl = FriendlyUrlHelper.GetFriendlyProductUrl(Dynamicweb.Context.Current.Request["ProductID"], Model.ID, area.Culture); 428 429 if (!string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request["GroupID"])) 430 { 431 url = groupUrl; 432 } 433 else if (!string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request["ProductID"])) 434 { 435 url = productUrl; 436 } 437 438 if (string.IsNullOrWhiteSpace(url)) 439 { 440 url = scheme + area.DomainLock; 441 } 442 443 <option class="navigation-secondary__language @(area.ID == Model.Area.ID ? "navigation-secondary__language--active" : "")" value="@(url)">@(area.Culture.Split('-')?.FirstOrDefault()?.ToUpper())</option> 444 } 445 } 446 447 </select> 448 </li> 449 450 <li class="navigation-secondary__item navigation-secondary__item--cart" data-action="slide-in" data-target="slideInCart"> 451 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/cart.svg"))) 452 { 453 <span class="icon icon-cart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/cart.svg"))</span> 454 } 455 @if (orderlineCount > 0) 456 { 457 <span class="navigation-secondary__item-counter">@orderlineCount</span> 458 } 459 </li> 460 @if (hasUser) 461 { 462 <li class="navigation-secondary__item navigation-secondary__item--user" data-action="slide-in" data-target="signOut"> 463 @{ 464 string userFirstName = user.FirstName; 465 string userLastName = user.LastName; 466 string userCompany = user.Company; 467 string user_UserName = user.UserName; 468 string userInitials = string.Empty; 469 if (userFirstName?.Length > 0) 470 { 471 userInitials = userInitials + userFirstName?.Substring(0, 1); 472 } 473 if (userLastName?.Length > 0) 474 { 475 userInitials = userInitials + userLastName?.Substring(0, 1); 476 } 477 if (userInitials.Length == 0 && user_UserName.Length > 1) 478 { 479 userInitials = user_UserName.Substring(0, 2); 480 } 481 if (userInitials.Length == 0 && userCompany.Length > 1) 482 { 483 userInitials = userCompany.Substring(0, 2); 484 } 485 } 486 @if (userInitials.Length > 0) 487 { 488 <div class="navigation-secondary__profile-wrapper"> 489 <span class="navigation-secondary__initial">@userInitials.ToUpper()</span> 490 </div> 491 } 492 else if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg"))) 493 { 494 <div class="navigation-secondary__profile-wrapper"> 495 <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> 496 </div> 497 } 498 499 @SnippetStart("SlideIns") 500 @{ 501 string close = Translate("Translate_Slide-in_close"); 502 string signOutHeadline = Translate("Translate_Sign-out_headline"); 503 string signOutText = Translate("Translate_Sign-out_text"); 504 string userName = Model.CurrentUser.Name; 505 string userUserName = Model.CurrentUser.UserName; 506 string signOutButtonText = Translate("Translate_Sign-out_button-text"); 507 string redirectUrl = RedirectHelper.GetLoginReturnUrl(); 508 string formAction = "/Admin/Public/ExtranetLogoff.aspx?Redirect=" + redirectUrl; 509 510 string welcomeText = Translate("Translate_Sign-out_welcome-text"); 511 string welcomeSummary = Translate("Translate_Sign-out_summary-text"); 512 Dynamicweb.Content.PageService pageService = new Dynamicweb.Content.PageService(); 513 514 int customerCenterPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "Kundecenter")?.ID ?? 0; 515 var productsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "ProductList")?.ID ?? 0; 516 var myProductsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "MyProducts")?.ID ?? 0; 517 var sparepartsPageId = pageService.GetPageByNavigationTag(Model.Area.ID, "Spareparts")?.ID ?? 0; 518 519 IEnumerable<Dynamicweb.Content.Page> customerCenterPages = pageService.GetPagesByParentID(customerCenterPageId); 520 521 var myProductsUrl = SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={myProductsPageId}&GroupID={"GROUP368"}", areas.FirstOrDefault(x => x.ID == Model.Area.ID).EcomLanguageId); 522 var sparepartsPageUrl = SearchEngineFriendlyURLs.GetFriendlyUrl(sparepartsPageId); 523 524 bool hasMyProducts = false; 525 var _assortmentService = new Dynamicweb.Ecommerce.Assortments.AssortmentService(); 526 var _productService = new Dynamicweb.Ecommerce.Products.ProductService(); 527 528 if (UserProductAccessHelper.IsUserVibocoldUser(user)) 529 { 530 var myProducts = _productService.GetProductsByGroupId("GROUP368", false, Pageview.Area.EcomLanguageId, false); 531 var userAssortmentsIds = _assortmentService.GetAssortmentIdsByUser(user); 532 hasMyProducts = myProducts.Where(mp => _assortmentService.GetAssortmentsByProduct(mp).Where(a => userAssortmentsIds.Contains(a.ID)).Any()).Any(); 533 } 534 else 535 { 536 var myProducts = _productService.GetProductsByGroupId("GROUP368", true, Pageview.Area.EcomLanguageId, false); 537 var userAssortmentsIds = _assortmentService.GetAssortmentIdsByUser(user); 538 hasMyProducts = myProducts.Where(mp => mp.Active == true && mp.Discontinued == false && _assortmentService.GetAssortmentsByProduct(mp).Where(a => userAssortmentsIds.Contains(a.ID)).Any()).Any(); 539 } 540 } 541 <div class="slide-in" id="signOut"> 542 <div class="slide-in__content slide-in__content--center-content customer-center module-white"> 543 <div class="slide-in__close"> 544 <span></span> 545 <small>@close</small> 546 </div> 547 <div class="slide-in__headline new-style-h3">@welcomeText @user.FirstName</div> 548 <p class="customer-center__user-container">@user.Company (@userUserName)</p> 549 <p class="customer-center__welcome-summary">@welcomeSummary</p> 550 551 @if (customerCenterPages.Any()) 552 { 553 <ul class="customer-center__list"> 554 @foreach (var page in customerCenterPages) 555 { 556 <li class="customer-center__item"> 557 <a class="btn btn-cta customer-center__link" href="@page.GetPageHrefValue()"> 558 <span class="btn__text">@page.GetDisplayName()</span> 559 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))) 560 { 561 <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> 562 } 563 </a> 564 </li> 565 } 566 @if (!string.IsNullOrWhiteSpace(myProductsUrl) && hasMyProducts) 567 { 568 <li class="customer-center__item my-products-item"> 569 <a class="btn btn-cta customer-center__link" href="@myProductsUrl"> 570 <span class="btn__text">@Translate("Translate_Slide-in_My_Products")</span> 571 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))) 572 { 573 <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> 574 } 575 </a> 576 </li> 577 } 578 @if (UserProductAccessHelper.IsUserVibocoldUser(user)) 579 { 580 <li class="customer-center__item"> 581 <a class="btn btn-cta customer-center__link" href="@sparepartsPageUrl"> 582 <span class="btn__text">@Translate("Translate_Slide-in_Spareparts")</span> 583 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))) 584 { 585 <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> 586 } 587 </a> 588 </li> 589 } 590 </ul> 591 } 592 <form class="form form--login" name="ExtranetUserForm" id="ExtranetUserForm" method="post" action="@formAction"> 593 <div class="form__input-container"> 594 <button type="submit" class="btn btn-primary">@signOutButtonText</button> 595 </div> 596 </form> 597 </div> 598 </div> 599 @SnippetEnd("SlideIns") 600 </li> 601 } 602 else 603 { 604 <li class="navigation-secondary__item" data-action="slide-in" data-target="signIn"> 605 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg"))) 606 { 607 <span class="icon icon-profile">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/profile.svg"))</span> 608 } 609 </li> 610 } 611 </ul> 612 <button class="navigation__btn"><span></span></button> 613 </nav> 614 <main id="main" class="@($"{(darkMode ? "darkmode" : "" )}")"> 615 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 616 617 618 619 @{ 620 var isMyProducts = Dynamicweb.Context.Current.Request["GroupID"] == "GROUP368"; 621 622 var listClass = $"module module-white product-list {(isMyProducts ? "my-products" : "")}"; 623 } 624 625 <article class="@listClass"> 626 @if (!isMyProducts) 627 { 628 <nav class="sidebar-navigation js-expanded" id="sidebarNavigation" aria-hidden="false" aria-labelledby="sidebarNavigationLabel"> 629 <div class="sidebar-navigation__inner"> 630 <span class="sidebar-navigation__headline">@Translate("Translate_SidebarNavigation_ProductCategories")</span> 631 @RenderNavigation( 632 new 633 { 634 StartLevel = 1, 635 EndLevel = 1, 636 ParentId = 0, 637 ExpandMode = Dynamicweb.Frontend.Navigation.ExpandMode.PathOnly, 638 id = "sidebar-navigation__list", 639 Template = "sidebar-navigation.xslt" 640 } 641 ) 642 </div> 643 </nav> 644 } 645 @Model.Placeholder("dwcontent", "content", "default:true;sort:1") 646 </article> 647 648 <button class="scroll-top"> 649 <span class="scroll-top__icon">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/chevron.svg"))</span> 650 </button> 651 </main> 652 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 653 654 @{ 655 string headlineSales = Model.Area.Item.GetItem("Footer")?.GetString("HeadlineSales"); 656 string phoneSales = Model.Area.Item.GetItem("Footer")?.GetString("PhoneSales"); 657 string phoneSalesLink = "tel:" + phoneSales.Replace(" ", ""); 658 string emailSales = Model.Area.Item.GetItem("Footer")?.GetString("EmailSales"); 659 string emailSalesLink = "mailto:" + emailSales.Replace(" ", ""); 660 string openingHoursLabel = Model.Area.Item.GetItem("Footer")?.GetString("OpeningHoursLabel"); 661 662 string headlineService = Model.Area.Item.GetItem("Footer")?.GetString("HeadlineService"); 663 string phoneService = Model.Area.Item.GetItem("Footer")?.GetString("PhoneService"); 664 string phoneServiceLink = "tel:" + phoneService.Replace(" ", ""); 665 string emailService = Model.Area.Item.GetItem("Footer")?.GetString("EmailService"); 666 string emailServiceLink = "mailto:" + emailService.Replace(" ", ""); 667 668 string organizationName = Model.Area.Item.GetItem("Organization")?.GetString("Name"); 669 string organizationAddress = Model.Area.Item.GetItem("Organization")?.GetString("Address"); 670 string organizationZipCode = Model.Area.Item.GetItem("Organization")?.GetString("Zipcode"); 671 string organizationCity = Model.Area.Item.GetItem("Organization")?.GetString("City"); 672 673 string directionsLink = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Link"); 674 string directionsTitle = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Title"); 675 string directionsText = Model.Area.Item.GetItem("Footer")?.GetItem("GetDirectionsLink")?.GetString("Text"); 676 677 string organizationPhone = Model.Area.Item.GetItem("Organization")?.GetString("Phone"); 678 string organizationPhoneLink = "tel:" + organizationPhone.Replace(" ", ""); 679 string organizationEmail = Model.Area.Item.GetItem("Organization")?.GetString("Email"); 680 string organizationEmailLink = "mailto:" + organizationEmail.Replace(" ", ""); 681 682 string cvrLabel = Model.Area.Item.GetItem("Footer")?.GetString("CVRLabel"); 683 string cvr = Model.Area.Item.GetItem("Footer")?.GetString("CVR"); 684 685 string controlReportLink = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Link"); 686 string controlReportTitle = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Title"); 687 string controlReportText = Model.Area.Item.GetItem("Footer")?.GetItem("ControlReport")?.GetString("Text"); 688 string linkedInUrl = Model.Area.Item.GetItem("SocialMedia").GetString("LinkedIn"); 689 string facebookUrl = Model.Area.Item.GetItem("SocialMedia").GetString("Facebook"); 690 string youTubeUrl = Model.Area.Item.GetItem("SocialMedia").GetString("YouTube"); 691 692 @* 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 *@ 693 <text> 694 @SnippetStart("HeaderContactInfo") 695 <li class="header__contact-info-item"> 696 <span class="preline">@headlineSales</span> 697 <a class="header__contact-info-link" href="@phoneSalesLink">@phoneSales</a> 698 <a class="header__contact-info-link" href="@emailSalesLink">@emailSales</a> 699 </li> 700 <li class="header__contact-info-item"> 701 <span class="preline">@headlineService</span> 702 <a class="header__contact-info-link" href="@phoneServiceLink">@phoneService</a> 703 <a class="header__contact-info-link" href="@emailServiceLink">@emailService</a> 704 <span class="header__contact-info-byline"> 705 <span>@openingHoursLabel</span> 706 @foreach (var openingHour in Model.Area.Item.GetItem("Footer").GetItems("OpeningHours")) 707 { 708 <span>@openingHour.GetString("Text")</span> 709 } 710 </span> 711 </li> 712 @SnippetEnd("HeaderContactInfo") 713 @SnippetStart("NavigationContactInfo") 714 <div> 715 <span class="preline">@headlineSales</span> 716 <a class="navigation-primary__contact-link" href="@phoneSalesLink">@phoneSales</a> 717 <a class="navigation-primary__contact-link" href="@emailSalesLink">@emailSales</a> 718 </div> 719 <div> 720 <span class="preline">@headlineService</span> 721 <a class="navigation-primary__contact-link" href="@phoneServiceLink">@phoneService</a> 722 <a class="navigation-primary__contact-link" href="@emailServiceLink">@emailService</a> 723 <b class="navigation-primary__opening-hours"> 724 <span>@openingHoursLabel</span> 725 @foreach (var openingHour in Model.Area.Item.GetItem("Footer").GetItems("OpeningHours")) 726 { 727 <span>@openingHour.GetString("Text")</span> 728 } 729 </b> 730 </div> 731 @SnippetEnd("NavigationContactInfo") 732 </text> 733 } 734 <footer class="footer module module-blue-dark"> 735 <div class="footer__contact"> 736 <div class="footer__contact-sale"> 737 <span class="preline">@headlineSales</span> 738 <a href="@phoneSalesLink">@phoneSales</a> 739 <a href="@emailSalesLink">@emailSales</a> 740 </div> 741 <div class="footer__contact-service"> 742 <span class="preline">@headlineService</span> 743 <a href="@phoneServiceLink">@phoneService</a> 744 <a href="@emailServiceLink">@emailService</a> 745 <div class="footer__contact-service-byline"> 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 </div> 752 </div> 753 </div> 754 <nav class="footer__nav"> 755 @{ 756 int counter = 0; 757 758 foreach (var footerColumn in Model.Area.Item.GetItem("Footer").GetItems("Columns")) 759 { 760 string footerColumnHeadline = footerColumn.GetString("Headline"); 761 string footerColumnRichText = footerColumn.GetString("RichText"); 762 763 <div class="footer__nav-content"> 764 <span class="preline">@footerColumnHeadline</span> 765 @footerColumnRichText 766 @if (counter == 1) 767 { 768 <a href="javascript:CookieConsent.renew();">@Translate("Translate_Cookiepolitik")</a> 769 } 770 </div> 771 772 counter++; 773 } 774 } 775 </nav> 776 <div class="footer__info"> 777 <div class="rich-text"> 778 <p> 779 @organizationName 780 <br /> 781 @organizationAddress 782 <br /> 783 @organizationZipCode @organizationCity 784 </p> 785 <p> 786 <a href="@directionsLink" target="_blank" title="@directionsTitle"> 787 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/directions.svg"))) 788 { 789 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/directions.svg"))</text> 790 } 791 <u>@directionsText</u> 792 </a> 793 </p> 794 <p> 795 <a href="@organizationPhoneLink"><b>@organizationPhone</b></a> 796 <br /> 797 <a href="@organizationEmailLink"><b>@organizationEmail</b></a> 798 </p> 799 <p> 800 @cvrLabel @cvr 801 </p> 802 </div> 803 <a href="/" class="footer__logo"> 804 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))) 805 { 806 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/svg/vibocold_logo.svg"))</text> 807 } 808 </a> 809 </div> 810 <div class="footer__socket"> 811 @if (!string.IsNullOrWhiteSpace(controlReportLink)) 812 { 813 <a href="@controlReportLink" title="@controlReportTitle"> 814 <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"> 815 <defs> 816 <pattern id="pattern" preserveAspectRatio="none" width="100%" height="100%" viewBox="0 0 57 65"> 817 <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" /> 818 </pattern> 819 </defs> 820 <rect id="Kontrolrapport_ikon" data-name="Kontrolrapport ikon" width="29" height="33" fill="url(#pattern)" /> 821 </svg> 822 @controlReportText 823 </a> 824 } 825 @if (!string.IsNullOrWhiteSpace(linkedInUrl)) 826 { 827 <a href="@linkedInUrl"> 828 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/linkedin.svg"))) 829 { 830 <span class="icon icon-linkedin">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/linkedin.svg"))</span> 831 } 832 </a> 833 } 834 @if (!string.IsNullOrWhiteSpace(facebookUrl)) 835 { 836 <a href="@facebookUrl"> 837 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/facebook.svg"))) 838 { 839 <span class="icon icon-facebook">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/facebook.svg"))</span> 840 } 841 </a> 842 } 843 @if (!string.IsNullOrWhiteSpace(youTubeUrl)) 844 { 845 <a href="@youTubeUrl"> 846 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/youtube.svg"))) 847 { 848 <span class="icon icon-youtube">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/icons/youtube.svg"))</span> 849 } 850 </a> 851 } 852 </div> 853 </footer> 854 <span class="cursor"><span class="cursor__text"></span></span> 855 @RenderSnippet("SlideIns") 856 @if (extranetParagraphId != 0) 857 { 858 <text>@RenderParagraphContent(extranetParagraphId)</text> 859 } 860 @{ 861 string jsEditDate = System.IO.File.GetLastWriteTime(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/vibocold/assets/js/main.min.js")).ToString(); 862 jsEditDate = jsEditDate.Replace(":", "").Replace(" ", "").Replace("-", ""); 863 } 864 <script src="/files/templates/designs/vibocold/assets/js/main.min.js?v=@jsEditDate"></script> 865 @RenderSnippet("JavaScripts") 866 @RenderSnippet("PiwikCartUpdate") 867 @RenderSnippet("ScriptsBottom") 868 </body> 869 </html> 870