Error executing template "Designs/exhibition_site/_parsed/espresso.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_93a2d674acfe4cab83bb55985af159fe.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\_parsed\espresso.parsed.cshtml:line 18
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 Co3.Espresso.Website.TemplateBases.Pages.PageBase
2 @using System.IO
3 @using System.Web
4 @using System.Globalization
5 @using Co3.Espresso.Website.Services
6 @using Dynamicweb.Frontend
7 @using Dynamicweb.Ecommerce.Common
8 @using Dynamicweb.Security.UserManagement
9 @{
10 bool isUserAuthenticated = User.IsExtranetUserLoggedIn();
11 string globalAreaLang = PageView.Current().Area.CultureInfo.TwoLetterISOLanguageName;
12 int globalAreaId = PageView.Current().Area.ID;
13 CultureInfo currencyCulture = new CultureInfo(Context.Currency.CultureInfo);
14 string currencySeparatorDecimal = currencyCulture.NumberFormat.NumberDecimalSeparator;
15 string currencySeparatorInteger = currencyCulture.NumberFormat.NumberGroupSeparator;
16 string openGraphUrl = PageView.Current().SearchFriendlyUrl;
17 18 bool loadGoogleTagManager = !string.IsNullOrEmpty(Espresso.Area.GoogleTagManagerID) &&
19 !(Espresso.Area.Item.GoogleTagManagerDisableIfPerformanceTestIsDetected == "True" && HttpContext.Current.Request.UserAgent.ToLower().Contains("lighthouse"));
20 string hasCookiebot = PageView.Current().Area.Item["Cookiebot"]?.ToString();
21 22 bool isProduct = !string.IsNullOrEmpty(HttpContext.Current.Request["productId"]);
23 24 string profileProductCompanyName = RenderSnippet("profileProductCompanyName").ToString();
25 string profileProductCompanyDescription = RenderSnippet("profileProductCompanyDescription").ToString();
26 string profileProductCompanyLogo = RenderSnippet("profileProductCompanyLogo").ToString();
27 28 string openGraphTitle = isProduct ? profileProductCompanyName : Espresso.OpenGraphTitle;
29 string openGraphDescription = isProduct ? profileProductCompanyDescription : Espresso.OpenGraphDescription;
30 string metaDescription = isProduct ? profileProductCompanyDescription : Espresso.DynamicwebPage.Description;
31 32 string openGraphImage = isProduct ? HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Host + profileProductCompanyLogo : HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Host + Espresso.OpenGraphImage;
33 34 bool isLoppeOgStumpemarkedDA = globalAreaId == 46;
35 bool isHestOgRytterDA = globalAreaId == 37;
36 bool isFerieForAlleDA = globalAreaId == 36;
37 bool isFormlandDA = globalAreaId == 28;
38 bool isFoodtechDA = globalAreaId == 24;
39 bool isGameboxDA = globalAreaId == 43;
40 bool isAgromekDA = globalAreaId == 25;
41 bool isFoodexpoDA = globalAreaId == 38;
42 bool isElbilmessenDA = globalAreaId == 56;
43 bool isAutomatikmesseDA = globalAreaId == 42;
44 bool isDaloDA = globalAreaId == 59;
45 bool isDaloEN = globalAreaId == 60;
46 47 48 }
49 <!DOCTYPE html>
50 <html lang="@globalAreaLang" data-separator-integer="@currencySeparatorInteger" data-separator-decimal="@currencySeparatorDecimal">
51 <head>
52 53 @GetValue("CopyRightNotice")
54 <meta charset="utf-8">
55 <meta content="width=device-width, initial-scale=1, shrink-to-fit=no, minimal-ui" name="viewport">
56 <meta content="ie=edge" http-equiv="x-ua-compatible">
57 <link href="https://cdnjs.cloudflare.com" rel="preconnect">
58 <link href="https://www.googletagmanager.com" rel="preconnect">
59 <link href="https://www.google-analytics.com" rel="preconnect">
60 <link href="https://connect.facebook.net" rel="preconnect">
61 <title>@GetValue("Title")</title>
62 @Espresso.CriticalCSS
63 @RenderingService.Instance.PartialView("_partials/webfonts.cshtml", Espresso)
64 <link href="/Files/Templates/Designs/exhibition_site/_assets/_dist/css/default.css?v=2.8.6" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style">
65 @Espresso.CriticalJS
66 <link rel="shortcut icon" href="@Espresso.Area.Item.Favicon">
67 <meta name="description" content="@metaDescription">
68 @GetValue("MetaTags")
69 @if (Espresso.IsStagingUrl)
70 {
71 <meta content="noindex,nofollow" name="robots">
72 }
73 <meta property="og:url" content="@openGraphUrl">
74 <meta property="og:title" content="@openGraphTitle">
75 <meta property="og:description" content="@openGraphDescription">
76 <meta property="og:image" content="@openGraphImage">
77 <meta property="og:type" content="website">
78 @if (isFerieForAlleDA)
79 {
80 <meta name="p:domain_verify" content="cd4725e805acd772d7cf78e56bc9d58b">
81 }
82 @if (string.IsNullOrEmpty(Espresso.Area.Item.GoogleSiteVerification) == false)
83 {
84 <meta name="google-site-verification" content="@Espresso.Area.Item.GoogleSiteVerification">
85 }
86 87 @if (loadGoogleTagManager)
88 {
89 <!-- Google Tag Manager -->
90 <script data-cookieconsent="ignore">
91 (function (w, d, s, l, i) {
92 w[l] = w[l] || [];
93 w[l].push({
94 'gtm.start':
95 new Date().getTime(),
96 event: 'gtm.js'
97 });
98 var f = d.getElementsByTagName(s)[0],
99 j = d.createElement(s),
100 dl = l != 'dataLayer' ? '&l=' + l : '';
101 j.async = true;
102 j.src =
103 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
104 f.parentNode.insertBefore(j, f);
105 })(window, document, 'script', 'dataLayer', '@Espresso.Area.GoogleTagManagerID');
106 </script>
107 <!-- End Google Tag Manager -->
108 }
109110 <script data-cookieconsent="ignore" src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script>
111 <script data-cookieconsent="ignore" src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/ScrollTrigger.min.js"></script>
112113 @if (isFormlandDA)
114 {
115 // Chatbot
116 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="69d4df4f659e985b0ffba609" async="" domain="www.formland.dk"></script>
117 }
118 @if (isFerieForAlleDA)
119 {
120 // Chatbot
121 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="69899f7cda2a82fa85814adc" async="" domain="www.ferieforalle.dk"></script>
122 }
123 @if (isHestOgRytterDA)
124 {
125 // Chatbot
126 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="69899f70da2a82fa85814ac9" async="" domain="www.hestogrytter.dk"></script>
127 }
128 @if (isLoppeOgStumpemarkedDA)
129 {
130 // Chatbot
131 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992eef5172e28e2162f5d75" async="" domain="www.loppeogstumpemarked.dk"></script>
132 }
133 @if (isFoodtechDA)
134 {
135 // Chatbot
136 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992ef1c172e28e2162f5d93" async="" domain="www.foodtech.dk"></script>
137 }
138 @if (isGameboxDA)
139 {
140 // Chatbot
141 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992ef25172e28e2162f5d9d" async="" domain="www.gameboxfestival.dk"></script>
142 }
143 @if (isAgromekDA)
144 {
145 // Chatbot
146 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992ef31172e28e2162f5da6" async="" domain="www.agromek.dk"></script>
147 }
148 @if (isElbilmessenDA)
149 {
150 // Chatbot
151 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992ef52172e28e2162f5dc5" async="" domain="www.elbilmessen.dk"></script>
152 }
153 @if (isFoodexpoDA)
154 {
155 // Chatbot
156 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6992ef3b172e28e2162f5db2" async="" domain="www.foodexpo.dk"></script>
157 }
158 @if (isAutomatikmesseDA)
159 {
160 // Chatbot
161 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="69d4dfa2659e985b0ffba64f" async="" domain="www.automatikmesse.dk"></script>
162 }
163 @if (isDaloDA)
164 {
165 // Chatbot
166 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6a16ee78538b2ff02d0854eb" async="" domain="www.daloindustrydays.dk"></script>
167 }
168 @if (isDaloEN)
169 {
170 // Chatbot
171 <script src="https://files.userlink.ai/public/embed.min.js" charset="utf-8" id="bai-scr-emb" data-cid="6a16ee84538b2ff02d0854ff" async="" domain="www.daloindustrydays.com"></script>
172 }
173174 @if (isFoodexpoDA)
175 {
176 <!-- Adform Tracking Code BEGIN -->
177 <script type="text/javascript">
178 window._adftrack = Array.isArray(window._adftrack) ? window._adftrack : (window._adftrack ? [window._adftrack] : []);
179 window._adftrack.push({
180 HttpHost: 'track.adform.net',
181 pm: 4033194
182 });
183 (function () {
184 var s = document.createElement('script');
185 s.type = 'text/javascript';
186 s.async = true;
187 s.src = 'https://s2.adform.net/banners/scripts/st/trackpoint-async.js';
188 var x = document.getElementsByTagName('script')[0];
189 x.parentNode.insertBefore(s, x);
190 })();
191 </script>
192 <!-- Adform Tracking Code END -->
193 }
194 <script type="text/javascript">
195 let widgets = [];
196197 function onLoadRecaptcha() {
198 document.querySelectorAll('.g-recaptcha').forEach(function (el, index) {
199 let form = el.closest('form');
200 let widgetId = grecaptcha.render(el, {
201 'sitekey': el.dataset.sitekey,
202 'callback': function () {
203 onCaptchaCompleted(widgetId);
204 }
205 });
206207 widgets.push({
208 widgetId: widgetId,
209 form: form
210 });
211 });
212 }
213214 function onCaptchaCompleted(widgetId) {
215 const widget = widgets.find(w => w.widgetId === widgetId);
216 if (widget && widget.form) {
217 let form = widget.form;
218 const hiddenField = form.querySelector('input[name="reCAPTCHA"]');
219 hiddenField.value = 1;
220 hiddenField.dispatchEvent(new Event('input'));
221 hiddenField.checkValidity();
222 form.querySelector('.g-recaptcha').classList.remove('has-error');
223 }
224 }
225 </script>
226 <script src="https://www.google.com/recaptcha/api.js?onload=onLoadRecaptcha&render=explicit" async="" defer=""></script>
227228 </head>
229230 <body class="@Espresso.Item.CustomClasses" data-is-user-authenticated="@isUserAuthenticated.ToString().ToLower()" data-design="@Espresso.Area.DesignsFolderName">
231 @if (loadGoogleTagManager)
232 {
233 <!-- Google Tag Manager (noscript) -->
234 <noscript>
235 <iframe src="https://www.googletagmanager.com/ns.html?id=@Espresso.Area.GoogleTagManagerID" height="0" width="0" style="display: none; visibility: hidden"></iframe>
236 </noscript>
237 <!-- End Google Tag Manager (noscript) -->
238 }
239 @if (isFoodexpoDA)
240 {
241 <!-- Adform Tracking Code BEGIN -->
242 <noscript>
243 <p style="margin:0;padding:0;border:0;">
244 <img src="https://track.adform.net/Serving/TrackPoint/?pm=4033194" width="1" height="1" alt="">
245 </p>
246 </noscript>
247 <!-- Adform Tracking Code END -->
248 }
249 <noscript>
250 <p style="margin:0;padding:0;border:0;">
251 <img src="https://track.adform.net/Serving/TrackPoint/?pm=4033194" width="1" height="1" alt="">
252 </p>
253 </noscript>
254255 @using System.Text.RegularExpressions
256 @using Co3.Espresso.Website.Models.FrontEnd
257 @using Co3.Espresso.Website.Models.FrontEnd.Settings
258 @using Co3.Espresso.Website.Services
259 @using Co3.MCH.Website.Frontend.Helpers
260 @using Co3.MCH.Website.Frontend.Models.Frontend
261 @inherits Co3.Espresso.Website.TemplateBases.Pages.PageBase
262 @{
263 Espresso.Canvas.Classes.AddClasses( "js-e-canvas is-loading" );
264 if ( Espresso.Item.CanvasFullscreen == "True" )
265 {
266 Espresso.Canvas.Classes.AddClasses( "is-fullscreen" );
267 }
268269 if ( Espresso.Item.HeaderTransparent == "True" )
270 {
271 Espresso.Canvas.Classes.AddClasses( "header-is-transparent" );
272 }
273274 }
275276277278 @{
279280 Regex hexcodeRegex = new Regex(@"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$");
281 string exhibitionColorPrimary = hexcodeRegex.IsMatch( MCH365Context.Current.TradeShowDetails.PrimaryColor ) ? MCH365Context.Current.TradeShowDetails.PrimaryColor : "#000000";
282 string exhibitionColorSecondary = hexcodeRegex.IsMatch( MCH365Context.Current.TradeShowDetails.SecondaryColor ) ? MCH365Context.Current.TradeShowDetails.SecondaryColor : "#000000";
283 string exhibitionColorTertiary = hexcodeRegex.IsMatch( MCH365Context.Current.TradeShowDetails.TertiaryColor ) ? MCH365Context.Current.TradeShowDetails.TertiaryColor : "#000000";
284285 ColorHelper.HSL brandPrimary = ColorHelper.Instance.HexToHsl(exhibitionColorPrimary);
286 ColorHelper.HSL brandSecondary = ColorHelper.Instance.HexToHsl(exhibitionColorSecondary);
287 ColorHelper.HSL brandTertiary = ColorHelper.Instance.HexToHsl(exhibitionColorTertiary);
288289 }
290291 <style>
292 :root {
293 --primary-color: @brandPrimary.ToString();
294 --primary-color-darken: @brandPrimary.Darken(10).ToString();
295296 --secondary-color: @brandSecondary.ToString();
297 --secondary-color-darken: @brandSecondary.Darken(10).ToString();
298299 --tertiary-color: @brandTertiary.ToString();
300 --tertiary-color-darken: @brandTertiary.Darken(10).ToString();
301302 --exhibition-profile-primary-brand-color: hsl(var(--primary-color));
303 --exhibition-profile-secondary-brand-color: hsl(var(--secondary-color));
304 --exhibition-profile-tertiary-brand-color: hsl(var(--tertiary-color));
305306 --exhibition-profile-primary-brand-color-darken: hsl(var(--primary-color-darken));
307 --exhibition-profile-secondary-brand-color-darken: hsl(var(--secondary-color-darken));
308 --exhibition-profile-tertiary-brand-color-darken: hsl(var(--tertiary-color-darken));
309 }
310 </style>
311312313314 <div class="e-loading-overlay e-page-loading-overlay is-loading js-e-page-loading-overlay">
315 @RenderingService.Instance.PartialView( "_partials/loading-spinner.cshtml" )
316 </div>
317318 <div class="@Espresso.Canvas.Classes">
319320 @*<a href="#dwcontentmain" class="custom-skiptocontent">@Translate("Gå til sidens indhold")</a>*@
321322 @RenderingService.Instance.PartialView("_partials/header.cshtml", Espresso)
323 @RenderingService.Instance.PartialView("usermanagement/viewprofile/espresso-impersonate-user-msg.cshtml", Espresso)
324 <main id="dwcontentmain" tabindex="-1" role="main" class="e-content js-e-content @Espresso.ContentArea.Classes">
325326 <article class="e-content-article">
327 @RenderingService.Instance.PartialView("_partials/nav-local-vertical.cshtml", Espresso)
328 @RenderingService.Instance.SectionStart(new SectionSettings())
329 @GetValue("DwContent(dwcontentmain)")
330 @RenderingService.Instance.SectionEnd()
331 </article>
332 </main>
333334 @RenderingService.Instance.PartialView("_partials/footer.cshtml", Espresso)
335336 @if (!string.IsNullOrEmpty(GetString("DwContent(dwcontentcta)")))
337 {
338 <aside class="e-cta fixed-top is-hidden js-e-cta" id="dwcontentcta">
339 @RenderingService.Instance.SectionStart(new SectionSettings
340 {
341 ContentClasses = new ClassList("col-12"),
342 OuterRowClasses = new ClassList("row no-gutters"),
343 InnerRowClasses = new ClassList("row no-gutters justify-content-center align-items-center")
344 })
345 @GetValue("DwContent(dwcontentcta)")
346 @RenderingService.Instance.SectionEnd()
347348 </aside>
349 }
350351 @RenderingService.Instance.PartialView("ecom7/cartv2/step/espresso-cart-msg.cshtml")
352 </div>
353354 @RenderingService.Instance.PartialView( "_partials/search.cshtml", Espresso )
355356 @RenderingService.Instance.PartialView( "_partials/back-to-top.cshtml", Espresso )
357358 @if ( 1 == 2 )
359 {
360 @GetValue("DwCookieWarning")
361 }
362363364 <script data-cookieconsent="ignore" async="" src="/Files/Templates/Designs/exhibition_site/_assets/_dist/js/default.js?v=1.10.4"></script>
365366367 </body>
368369 @GetValue("CopyRightNotice")
370 </html>