Error executing template "Designs/DLF/_parsed/Page.parsed.cshtml"
System.InvalidOperationException: Default currency does not exist
at Dynamicweb.Ecommerce.Common.Context.GetCurrency()
at Dynamicweb.Ecommerce.Frontend.PageViewGlobalTagsSubscriber.OnNotify(String notification, NotificationArgs args)
at Dynamicweb.Extensibility.Notifications.NotificationManager.Notify(String notification, NotificationArgs eventArgs)
at Dynamicweb.Frontend.PageView.GetGlobalTemplateTags()
at Dynamicweb.Rendering.RazorTemplateBase`1.GetGlobalValue(String name)
at CompiledRazorTemplates.Dynamic.RazorEngine_10caae99929e4314b32e1ddb8e9d984f.Execute() in C:\inetpub\solutions\DLF.MyDLF.Web_DC - Live\Files\Templates\Designs\DLF\_parsed\Page.parsed.cshtml:line 10
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 @using DLF.MyDLF.Web.Razor
2 @using NLWI.Core.Factory
3 @using NORRIQ.Common8.Context
4 @using NORRIQ.Common8.Razor
5 @using NORRIQ.DisplayIt.Extensions
6 @using NORRIQ.Universal.Extensions
7 @using DLF.MyDLF.Web.CustomModules.DisplayItModes.UserManagement.Services
8 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
9 @{
10 var htmlLang = GetGlobalValue("Global:Area.Culture.Name");
11 var metaCharset = GetValue("CharSet");
12 var Logo = GetString("Item.Area.Negative_Logo");
13 var LargeLogo = GetString("Item.Area.LargeLogo");
14 //var mobileLogo = GetString("Item.Area.SmallLogo");
15 //var logoWidth = GetGlobalValue("Global:Device.IsMobile") == "True" ? "110" : "180";
16 var urlLogo = GetString("Item.Area.LogoUrl");
17 var pageType = GetBoolean("Item.Page.ClosedPage") || Pageview.User == null ? "settings-page" : "default-page";
18 var salesContactID = 0;
19 var shippingContactID = 0;
20 var financeContactID = 0;
21 var generalContactID = 0;
22 var faviconfolder = "/Files/Images/icons";
23 Int32.TryParse(GetString("Item.Area.SalesContact").Split('#').Last(), out salesContactID);
24 Int32.TryParse(GetString("Item.Area.ShippingContact").Split('#').Last(), out shippingContactID);
25 Int32.TryParse(GetString("Item.Area.FinanceContact").Split('#').Last(), out financeContactID);
26 Int32.TryParse(GetString("Item.Area.GeneralContact").Split('#').Last(), out generalContactID);
27 var masterTranslatePrefix = "Master_";
28 string forgotpasswordPath = NORRIQ.Common8.Razor.Navigation.GetUriByNavigationTag("reset-password").SetQuery("LoginAction", "Recovery").PathAndQuery;
29 string gtmId = ObjectFactory.GetInstance<AreaItemSettings>().GetCurrentAreaValue<string>("Google_GTM_ID");
30 bool isImpersonating = string.IsNullOrWhiteSpace(GetGlobalValue("NIQ:Salesperson.IsImpersonating")) ? false : bool.Parse(GetGlobalValue("NIQ:Salesperson.IsImpersonating"));
31 string userType = ObjectFactory.GetInstance<UserManagementService>().GetUserType(isImpersonating).ToString();
32 string customerNumber = ObjectFactory.GetInstance<UserManagementService>().GetCustomerNumber();
33 bool isLoginRegistered = ObjectFactory.GetInstance<UserManagementService>().IsLoginRegistered(isImpersonating);
34
35 int shippingParagraphID = 0;
36
37 switch (htmlLang)
38 {
39 case "da-DK":
40 shippingParagraphID = 368;
41 break;
42 case "ru-RU":
43 shippingParagraphID = 153;
44 break;
45 case "fr-FR":
46 shippingParagraphID = 234;
47 break;
48 case "nl-NL":
49 shippingParagraphID = 289;
50 break;
51 default: // en-GB
52 shippingParagraphID = 29;
53 break;
54 }
55
56 int financeParagraphID = 0;
57
58 switch (htmlLang)
59 {
60 case "da-DK":
61 financeParagraphID = 369;
62 break;
63 case "ru-RU":
64 financeParagraphID = 154;
65 break;
66 case "fr-FR":
67 financeParagraphID = 235;
68 break;
69 case "nl-NL":
70 financeParagraphID = 290;
71 break;
72 default: // en-GB
73 financeParagraphID = 30;
74 break;
75 }
76 }
77 <!DOCTYPE html>
78 <html lang="@htmlLang">
79 <head>
80 <title>@GetValue("Title")</title>
81 @GetValue("MetaTags")
82 @GetValue("CopyRightNotice")
83
84 <meta charset="utf-8">
85 <meta http-equiv="X-UA-Compatible" content="IE=edge">
86 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
87
88 @* ENSURE NO CACHE to avoid any lawsuit :) ! *@
89 <meta http-equiv="cache-control" content="max-age=0">
90 <meta http-equiv="cache-control" content="no-cache">
91 <meta http-equiv="expires" content="0">
92 <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
93 <meta http-equiv="pragma" content="no-cache">
94
95 <link rel="apple-touch-icon" sizes="57x57" href="@faviconfolder/apple-icon-57x57.png">
96 <link rel="apple-touch-icon" sizes="60x60" href="@faviconfolder/apple-icon-60x60.png">
97 <link rel="apple-touch-icon" sizes="72x72" href="@faviconfolder/apple-icon-72x72.png">
98 <link rel="apple-touch-icon" sizes="76x76" href="@faviconfolder/apple-icon-76x76.png">
99 <link rel="apple-touch-icon" sizes="114x114" href="@faviconfolder/apple-icon-114x114.png">
100 <link rel="apple-touch-icon" sizes="120x120" href="@faviconfolder/apple-icon-120x120.png">
101 <link rel="apple-touch-icon" sizes="144x144" href="@faviconfolder/apple-icon-144x144.png">
102 <link rel="apple-touch-icon" sizes="152x152" href="@faviconfolder/apple-icon-152x152.png">
103 <link rel="apple-touch-icon" sizes="180x180" href="@faviconfolder/apple-icon-180x180.png">
104 <link rel="icon" type="image/png" sizes="192x192" href="@faviconfolder/android-icon-192x192.png">
105 <link rel="icon" type="image/png" sizes="32x32" href="@faviconfolder/favicon-32x32.png">
106 <link rel="icon" type="image/png" sizes="96x96" href="@faviconfolder/favicon-96x96.png">
107 <link rel="icon" type="image/png" sizes="16x16" href="@faviconfolder/favicon-16x16.png">
108 <link rel="manifest" href="@faviconfolder/manifest.json">
109 <meta name="msapplication-TileColor" content="#ffffff">
110 <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
111 <meta name="theme-color" content="#ffffff">
112 <!-- Google Tag Manager -->
113 @if (!string.IsNullOrEmpty(gtmId))
114 {
115 <!-- Google Tag Manager -->
116 <script>
117 (function (w, d, s, l, i) {
118 w[l] = w[l] || []; w[l].push({
119 'gtm.start':
120 new Date().getTime(), event: 'gtm.js'
121 }); var f = d.getElementsByTagName(s)[0],
122 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
123 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
124 })(window, document, 'script', 'dataLayer', '@gtmId');
125 </script>
126 <!-- End Google Tag Manager -->
127 }
128 <link href="https://fonts.googleapis.com/css?family=Lato:400,700" rel="stylesheet">
129 <link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet">
130 <link rel="stylesheet" href="//cdn.materialdesignicons.com/4.4.95/css/materialdesignicons.min.css">
131 <link rel="stylesheet" href="/Files/Templates/Designs/DLF/css/font-awesome.min.css">
132 <link href="/Files/Templates/Designs/DLF/css/styles.css" rel="stylesheet">
133
134 @GetValue("Stylesheets")
135 @GetValue("Javascripts")
136 </head>
137 <body class="@pageType">
138 @if (string.Equals(GetGlobalValue("Global:Page.IsProtected"), "true", StringComparison.CurrentCultureIgnoreCase) && Pageview.User == null)
139 {
140
141 <!-- Google Tag Manager (noscript) -->
142 if (!string.IsNullOrEmpty(gtmId))
143 {
144 <noscript>
145 <iframe src="https://www.googletagmanager.com/ns.html?id=@gtmId" height="0" width="0" style="display:none;visibility:hidden"></iframe>
146 </noscript>
147 }
148 <!-- End Google Tag Manager (noscript) -->
149 <div class="container">
150 <div class="row">
151 <div class="col-xs-12 col-sm-6 col-sm-offset-3">
152 <div class="card">
153 <div class="card-logo">
154 <img src="/Files/Images/icons/android-icon-144x144.png"> <img src="@LargeLogo">
155 </div>
156 </div>
157 <div class="card">
158 <div class="card-header d-flex flex-row justify-content-between align-items-center">
159 <span class="card-title">@Translate(masterTranslatePrefix + "Login to MyDLF", "Login to MyDLF")</span>
160 @if (GetLoop("Item.Area.Languages").Any())
161 {
162 <div class="dropdown">
163 <div class="dropdown-toggle dropdown-button" type="button" id="languages" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
164 <i class="mdi mdi-web mdi-24px" aria-hidden="true"></i>
165 <span class="lang-layer">
166 @Pageview.Area.CultureInfo.TwoLetterISOLanguageName
167 </span>
168 <span class="sr-only">
169 @Translate(masterTranslatePrefix + "Select Language", "Select Language")
170 </span>
171 <i class="mdi mdi-chevron-down" aria-hidden="true"></i>
172 </div>
173 <ul class="dropdown-menu dropdown-menu-right" aria-labelledby="languages">
174 @foreach (LoopItem lang in GetLoop("Item.Area.Languages"))
175 {
176 var link = "/" + lang.GetString("Item.Area.Languages.LanguageCode");
177 <li>
178 <a href="@link">
179 @lang.GetString("Item.Area.Languages.LanguageName") (@lang.GetString("Item.Area.Languages.LanguageCode"))
180 </a>
181 </li>
182 }
183 </ul>
184 </div>
185 }
186 </div>
187 <div class="card-body">
188 @{
189 var actionUrl = NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("dashboard").Replace("/", "");
190 actionUrl = "/" + actionUrl;
191 }
192
193 <form name="ExtUserForm" id="loginForm" method="post" class="form" role="form" action="@actionUrl" data-ad-action="/Admin/Public/Social/ExternalLogin.aspx?action=login&providerID=1&returnUrl=%2FDefault.aspx%3FID%3D2">
194 <input type="hidden" name="ID" id="ID" value="@Pageview.Page.ID">
195 <div class="form-group">
196 <label for="Username">@Translate(masterTranslatePrefix + "Username", "Username")</label>
197 <input id="Username" name="Username" type="text" value="" class="form-control" autocomplete="off">
198 </div>
199 <div class="form-group">
200 <label for="Password">@Translate(masterTranslatePrefix + "Password", "Password")</label>
201 <input id="Password" name="Password" type="password" value="" class="form-control" autocomplete="off">
202 </div>
203 <div id="loginFeedback"></div>
204 <a href="@forgotpasswordPath" class="forgot-password pull-right">@Translate(masterTranslatePrefix + "Forgot password", "Forgot password")</a>
205 <button type="submit" role="button" class="btn btn-primary" id="loginBtn" data-float="right">
206 @Translate(masterTranslatePrefix + "Login", "Login")
207 </button>
208 </form>
209 </div>
210 </div>
211 </div>
212 </div>
213 </div>
214
215 }
216
217 else
218 {
219 try
220 {
221 if (!GetBoolean("Item.Page.ClosedPage"))
222 {
223 <text>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
224 @{
225 var translationPrefix = "NavBar_";
226 }
227
228 <nav class="navbar navbar-default navbar-fixed-top">
229 <div class="navbar-inner">
230 <div class="container">
231 <div class="navbar-header">
232 <a href="@(NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag(" dashboard"))"="" class="navbar-brand">
233 <img src="@Logo">
234 </a>
235 <ul class="navbar-menu">
236 <li class="dropdown">
237 <a role="button" class="dropdown-toggle" id="userAccount" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
238 <i class="mdi mdi-account"></i>
239 <span class="navbar-help">@Translate(translationPrefix + "User", "Account")</span>
240 </a>
241 <ul class="dropdown-menu dropdown-menu-right dropdown-menu-user" aria-labelledby="userAccount">
242 <li class="dropdown-header">
243 <strong>@GetGlobalValue("Global:Extranet.Company")</strong><br>
244 @(GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True" ? GetGlobalValue("NIQ:Salesperson.Name") : GetGlobalValue("Global:Extranet.Name"))
245 </li>
246 @RenderNavigation(new { Template = "settings.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 3, Impersonating = GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True" })
247 <li class="logout">
248 <a href='/admin/public/extranetlogoff.aspx?ID=@(Pageview.Page.ID)'>@Translate(translationPrefix + "Log Out", "Log Out")</a>
249 @if (GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True")
250 {
251 <a href='@(NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("impersonation-choose-customer"))?action=changeuser'>@Translate(translationPrefix + "Change user", "Change user")</a>
252 }
253 </li>
254 </ul>
255 </li>
256 <li>
257 <a role="button" class="collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
258 <i class="mdi mdi-menu"></i>
259 <span class="navbar-help">@Translate(translationPrefix + "Menu", "Menu")</span>
260 </a>
261 </li>
262 </ul>
263 <div class="navbar-user">
264 <div class="navbar-subbrand">
265 <img src="/Files/Images/icons/android-icon-144x144.png">
266 </div>
267 </div>
268 </div>
269
270 <div id="navbar" class="navbar-collapse collapse">
271 <ul class="nav navbar-nav">
272 @RenderNavigation(new { Template = "navbar.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 1 })
273
274 @{
275 var isWebshopUserField = Pageview.User.CustomFieldValues.FirstOrDefault(field => (field.CustomField.SystemName == "AccessUser_IsWebshopUser"));
276
277 if (isWebshopUserField != null && isWebshopUserField.Value.Equals(true))
278 {
279 <li>
280 <a href="/Handlers/UserManagement/WebshopLogIn.ashx">
281 <span><i aria-hidden="true" class="mdi mdi-store"></i><span class="navbar-nav-label">Webshop</span></span>
282 </a>
283 </li>
284 }
285 }
286 <li class="dropdown visible-md visible-lg">
287 <a role="button" class="dropdown-toggle" id="userAccount" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
288 <span>
289 <i class="mdi mdi-account"></i>
290 @*<i class="mdi mdi-chevron-down"></i>*@
291 <span class="navbar-nav-label">@Translate(translationPrefix + "User", "Account") <span class="caret"></span></span>
292 </span>
293 </a>
294 <ul class="dropdown-menu dropdown-menu-right dropdown-menu-user" aria-labelledby="userAccount">
295 <li class="dropdown-header">
296 <strong>@GetGlobalValue("Global:Extranet.Company")</strong><br>
297 @(GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True" ? GetGlobalValue("NIQ:Salesperson.Name") : GetGlobalValue("Global:Extranet.Name"))
298 </li>
299 @RenderNavigation(new { Template = "settings.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 3, Impersonating = GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True" })
300
301 <li class="logout">
302 <a href='/admin/public/extranetlogoff.aspx?ID=@(Pageview.Page.ID)'>@Translate(translationPrefix + "Log Out", "Log Out")</a>
303 @if (GetGlobalValue("NIQ:Salesperson.IsImpersonating") == "True")
304 {
305 <a href='@(NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("impersonation-choose-customer"))?action=changeuser'>@Translate(translationPrefix + "Change user", "Change user")</a>
306 }
307 </li>
308 </ul>
309 </li>
310 </ul>
311 </div>
312 </div>
313 </div>
314 </nav>
315 </text>
316 }
317 }
318 catch (Exception) { }
319 <text>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
320 @using NORRIQ.Common8.Razor;
321
322
323
324 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
325 @using Dynamicweb.Security.UserManagement.Common.CustomFields;
326
327 @helper RenderPeriodSelector()
328 {
329 //Get period from url, or default to last user selection
330 string query = System.Web.HttpContext.Current.Request.QueryString["season"];
331 CustomFieldValue selectedPeriod = Pageview.User.CustomFieldValues.FirstOrDefault(field => (field.CustomField.SystemName == "AccessUser_SelectedPeriod"));
332 string val = !string.IsNullOrEmpty(query) ? query : (selectedPeriod == null || selectedPeriod.Value.GetType() == typeof(DBNull)) ? "0" : selectedPeriod.Value.ToString();
333 int? value = !string.IsNullOrEmpty(val) ? Convert.ToInt32(val) : 0;
334
335 string value0 = value == 0 ? "selected=\"selected\"" : "";
336 string value1 = value == 1 ? "selected=\"selected\"" : "";
337 string value2 = value == 2 ? "selected=\"selected\"" : "";
338 string value3 = value == 3 ? "selected=\"selected\"" : "";
339
340 <select id="periodSelector" onchange="location.href='?season=' + this.value;" class="form-control">
341 <option value="0" @value0="">
342 @Translate("Calendar Year", "Calendar Year")
343 </option>
344 <option value="1" @value1="">
345 @Translate("Financial Year", "Financial Year")
346 </option>
347 <option value="2" @value2="">
348 @Translate("Spring Season", "Spring Season")
349 </option>
350 <option value="3" @value3="">
351 @Translate("Autumn Season", "Autumn Season")
352 </option>
353 </select>
354 }
355 ;
356
357
358 @if (!GetBoolean("Item.Page.ClosedPage"))
359 {
360 <div class="container">
361 <div class="content-header">
362 <h1>
363 @if (String.IsNullOrEmpty(GetString("Item.PageTitle")))
364 {
365 @GetString("Item.Title")
366 }
367 else
368 {
369 @GetString("Item.PageTitle")
370 }
371 </h1>
372 <div class="content-header-grow clearfix">
373 @RenderSnippet("Season")@RenderSnippet("QA")
374 </div>
375 </div>
376 </div>
377 <div class="content-container clearfix">
378 <div class="container">
379 <div class="row-flex">
380 @RenderContent()
381 </div>
382 </div>
383 </div>
384 }
385 else
386 {
387 @SnippetStart("Logo")
388 <div class="card">
389 <div class="card-logo">
390 <img src="/Files/Images/icons/android-icon-144x144.png"> <img src="@LargeLogo">
391 </div>
392 </div>
393 @SnippetEnd("Logo")
394 <div class="container">
395 <div class="row">
396 @RenderContent()
397 </div>
398 </div>
399 }
400
401 @helper RenderContent()
402 {
403 @GetValue("DwContent(placeholder)")
404 }
405
406 @SnippetStart("Season")
407 @if (GetString("Item.PageType") == "dashboard")
408 {
409 @RenderPeriodSelector()
410 }
411 @SnippetEnd("Season")
412 </text>
413 if (!GetBoolean("Item.Page.ClosedPage"))
414 {
415 <div class="footer-container">
416 <div class="container">
417 <div class="row-flex">
418
419 @if (salesContactID > 0)
420 {
421 @RenderParagraphContent(salesContactID)
422 }
423
424 @if (shippingParagraphID > 0)
425 {
426 @RenderParagraphContent(shippingParagraphID)
427 }
428
429 @if (financeParagraphID > 0)
430 {
431 @RenderParagraphContent(financeParagraphID)
432 }
433
434 @if (generalContactID > 0)
435 {
436 @RenderParagraphContent(generalContactID)
437 }
438 </div>
439 @*<div class="row-fix text-center text-info">
440 <br>
441 @{var biCubeLastUpdated = this.GetBiCubeLastUpdated();}
442 @(Translate("footer-text", "All currency is in {currency} and data was last updated {last-updated}")
443 .Replace("{currency}", GetGlobalValue("Global:eCommerce.Currency"))
444 .Replace("{last-updated}", biCubeLastUpdated.HasValue ? biCubeLastUpdated.Value.ToString("g") : "?")
445 )
446 </div>*@
447 </div>
448 </div>
449 }
450 }
451
452 @using DLF.MyDLF.Web.CustomCode.Razor
453 @if (GetBoolean("NIQ:JavaScriptDebug"))
454 {
455 <script src="/scripts/require.js"></script>
456 @TimestampSource2.GetJavaScriptWithTimestamp("/scripts/mydlf/main.js")
457 }
458 else
459 {
460 @TimestampSource2.GetJavaScriptWithTimestamp("/scripts/mydlf/main.min.js")
461 }
462
463 <script append="replace"></script>
464 @if (!String.IsNullOrEmpty(GetString("Item.Area.Google")))
465 {
466 <script>
467 (function (i, s, o, g, r, a, m) {
468 i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
469 (i[r].q = i[r].q || []).push(arguments)
470 }, i[r].l = 1 * new Date(); a = s.createElement(o),
471 m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
472 })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
473
474 ga('create', '@GetString("Item.Area.Google")', 'auto');
475 ga('send', 'pageview');
476 </script>
477 }
478
479 <script>
480 var dates = document.getElementsByName("date-override");
481 dates.forEach(x => {
482 var date = x.getAttribute('data-override-date');
483 x.innerHTML = new Date(date).toLocaleDateString(undefined, {timeZone:"UTC"});
484 });
485 </script>
486
487
488 <script>
489 var dates = document.getElementsByName("date-override-last-updated");
490 dates.forEach(x => {
491 var date = x.getAttribute('data-override-date');
492 if (date !== '') {
493 var realDate = new Date(date);
494 date = realDate.toLocaleDateString(undefined, { timeZone: "UTC" }) + " " + realDate.toLocaleTimeString(undefined, { timeZone: "UTC" });
495 }
496
497 var innerHtml = x.innerHTML;
498 innerHtml = innerHtml.replace('{last-updated}', date);
499 x.innerHTML = innerHtml;
500 });
501 </script>
502
503 @{
504 //extend validation nmessages for different languages.
505 var locale = Pageview.Area.Culture.Split('-').FirstOrDefault() ?? string.Empty;
506 locale = locale.ToLower();
507 //en is the standard
508 if (!locale.Equals("en"))
509 {
510 <script type="text/javascript">
511
512 require(['jquery', 'require', 'jquery.validate'], function ($, require) {
513 require(['scripts/localization/messages_@(locale).js']);
514 });
515 </script>
516 }
517 }
518 @if (!string.IsNullOrEmpty(gtmId) && !string.IsNullOrEmpty(userType) && !string.IsNullOrEmpty(customerNumber) && !isLoginRegistered)
519 {
520 <script type="text/javascript">
521 window.dataLayer = window.dataLayer || [];
522 window.dataLayer.push({
523 'event': 'login',
524 'userId': '@customerNumber',
525 'userType': '@userType'
526 });
527 </script>
528 }
529 </body>
530 </html>
531