Error executing template "Designs/espresso-v4/_parsed/espresso.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_695b22f79bca49ef9dddbd7186bf8592.Execute() in D:\dynamicweb.net\Solutions\holstebrokommune.espresso4.dk\files\Templates\Designs\espresso-v4\_parsed\espresso.parsed.cshtml:line 11
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.Web;
3 @using Dynamicweb.Admin
4 @using Dynamicweb.Frontend
5 @{
6 string websiteLang = GetGlobalValue( "Global:Area.Lang" );
7 string pageId = GetGlobalValue( "Global:Page.ID" );
8 string websiteIntegerSeparator = GetGlobalValue( "Global:eCommerce.Currency.IntegerSeparator" );
9 string websiteDecimalSeparator = GetGlobalValue( "Global:eCommerce.Currency.DecimalSeparator" );
10 string pageTitle = GetValue( "Title" ).ToString();
11 string monsidoToken = Espresso.Area.Item.MonsidoToken;
12 string facebookToken = Espresso.Area.Item.FacebookDomainVerificationToken;
13 string customPage = "",
14 itemImg = GetString("Item.Image"),
15 openGraphImg = "https://" + GetGlobalValue("Global:Request.Host") + itemImg;
16 }
17 <!DOCTYPE html>
18 <html data-decimal-seperator="@websiteDecimalSeparator" data-integer-seperator="@websiteIntegerSeparator" lang="@websiteLang">
19 <head>
20 <script data-culture="DA" id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" type="text/javascript"></script>
21 @GetValue( "CopyRightNotice" )
22 <meta charset="utf-8">
23 <meta content="width=device-width, initial-scale=1, shrink-to-fit=no, minimal-ui" name="viewport">
24 <meta content="ie=edge" http-equiv="x-ua-compatible">
25 <meta name="facebook-domain-verification" content="rlg9sij1v0di0buos8k003d73qmfie">
26 <title>@GetValue("Title")</title>
27 @GetValue("MetaTags")
28 @GetValue("CopyRightNotice")
29
30 @Espresso.CriticalCSS
31 <link as="style" href="https://fonts.googleapis.com/css?family=Material+Icons" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel">
32 <link as="style" href="/Files/Templates/Designs/espresso-v4/_assets/_dist/css/default.css?v=1.5.82" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel">
33 @Espresso.CriticalJS
34
35 <link href="@Espresso.Area.Item.Favicon" rel="shortcut icon">
36 @GetValue( "MetaTags" )
37 @{
38 string OpenGraphURL = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + GetGlobalValue( "Global:Pageview.Url" );
39 string OpenGraphImage = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + Espresso.OpenGraphImage;
40 string noImage = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + "/Files/Images/hk-logo-normal-og.jpg";
41 string jobPage = GetGlobalValue( "Global:Pageview.LayoutTemplate" );
42 string pageID = GetGlobalValue( "Global:Page.ID" );
43 string pageItemType = GetString( "Item.Type" );
44 string topBannerJob = GetString( "Item.TopBanner" );
45 if ( pageItemType == "Jobs" )
46 {
47 if ( topBannerJob != "" )
48 {
49 OpenGraphImage = topBannerJob;
50 }
51 else
52 {
53 OpenGraphImage = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + "/Files/Images/5-kommunen/nogetfordig.jpg";
54 }
55 }
56 }
57
58 <meta content="@OpenGraphURL" property="og:url">
59 <meta content="website" property="og:type">
60 @if ( jobPage == "holstebro-kommune-job.cshtml" || pageID == "2829" )
61 {
62 <meta content="https://www.holstebro.dk/job" property="og:url">
63 }
64
65 @RenderSnippet( "MetaTags" )
66
67 @if ( !string.IsNullOrEmpty( facebookToken ) )
68 {
69 <meta name="facebook-domain-verification" content="@facebookToken">
70 }
71
72 @if ( !string.IsNullOrEmpty( Espresso.OpenGraphTitle ) )
73 {
74 <meta content="@Espresso.OpenGraphTitle" property="og:title">
75 }
76 else
77 {
78 <meta content="@pageTitle" property="og:title">
79 }
80
81
82 @if ( !string.IsNullOrEmpty( topBannerJob ) ) {
83 <meta content="@OpenGraphImage" property="og:image">
84 }
85 else if ( !string.IsNullOrEmpty( itemImg ) ) {
86 <meta content="@openGraphImg" property="og:image">
87 }
88 else if ( !string.IsNullOrEmpty( Espresso.OpenGraphImage ) )
89 {
90 <meta content="@OpenGraphImage" property="og:image">
91 }
92 else
93 {
94 <meta content="@noImage" property="og:image">
95 }
96
97 @if ( !string.IsNullOrEmpty( Espresso.OpenGraphDescription ) )
98 {
99 <meta content="@Espresso.OpenGraphDescription" property="og:description">
100 }
101
102 @if ( string.IsNullOrEmpty( Espresso.Area.Item.GoogleSiteVerification ) == false )
103 {
104 <meta content="@Espresso.Area.Item.GoogleSiteVerification" name="google-site-verification">
105 }
106 @{
107 if ( 1 == 2 )
108 {
109 @GetValue( "Stylesheets" )
110 }
111 }
112 @if (GetBoolean( "Item.CustomPage.Value" ) == true) {
113 customPage = "custom-page";
114 }
115 @GetValue("Stylesheets")
116 @GetValue("Javascripts")
117 </head>
118
119 <body class="@Espresso.Item.CustomClasses @customPage">
120 @using Dynamicweb.Security.UserManagement
121
122
123
124 @{
125 if( Espresso.Canvas.ClassList.ToString().Contains("e-page-is-loading") == true ){
126 Espresso.Canvas.ClassList.RemoveClasses("e-page-is-loading");
127 Espresso.Canvas.ClassList.AddClasses("is-loading");
128 }
129 bool pageWrapper = false;
130 if(!string.IsNullOrEmpty(Espresso.Item.CustomClasses)){
131 if(Espresso.Item.CustomClasses.Contains("no-wrapper")){
132 pageWrapper = true;
133 }
134 }
135 }
136
137 @if( Espresso.Area.Item.OptimizedLoading == "True" ){
138 <div id="js-e-page-loading-overlay" class="e-page-loading-overlay e-loading-overlay is-loading"><div class="e-loading-spinner"></div></div>
139 }
140 @{
141 string Logo = Espresso.Area.Item.Logo;
142 string Tagline = Espresso.Area.Item.Tagline;
143 }
144 <nav aria-label="Genvej til indhold" id="goToContent" class="hk-skip-to-content"><a class="js-hk-skip-to-content-link arrow-right" href="#dwcontentmain">Gå til indhold</a></nav>
145 @if( Espresso.Item.HeaderHide != "True" ){
146 <header class="e-header js-e-header hidden-print" role="banner">
147 <div class="col-12 p-0 d-lg-none">
148 <form action="/system/search" class="e-search-form e-search-hk-mobile">
149 <div class="form-group">
150
151 <input name="q" autocomplete="off" aria-label="search" class="form-control custom-search-input" type="search" placeholder="Hvad kan vi hjælpe dig med?" aria-label="Search">
152 <button class="btn btn-primary" type="submit"><em class="material-icons">search</em>Søg</button>
153
154 </div>
155 </form>
156 </div>
157 <div class="e-header-container navbar">
158 <div class="row">
159
160
161 <div class="col-12">
162 <article class="e-header-wrapper" aria-label="Header">
163
164 <div class="e-logo">
165 <a href="/" class="e-logo-link" alt="Gå til forside">
166 <img src="@Logo" class="e-logo-img" alt="@Tagline - logo">
167 @if( string.IsNullOrEmpty( Tagline ) == false ){
168 <p class="e-logo-tagline">@Tagline</p>
169 }
170 </a>
171 </div>
172 <div class="col-12 col-lg-8 hk-search-input">
173 <div class="header-search-input">
174 <form action="/system/search" class="e-search-form">
175 <div class="form-group">
176 <div class="e-search-container">
177 <input name="q" autocomplete="off" aria-label="search" class="form-control custom-search-input" type="search" placeholder="Hvad kan vi hjælpe dig med?" aria-label="Search">
178 <button class="btn btn-primary" type="submit"><em class="material-icons">search</em>Søg</button>
179 </div>
180 </div>
181 </form>
182 </div>
183 </div>
184 @if( Espresso.Item.NavigationHide != "True" ){
185
186
187
188
189 <div class="e-header-btn e-nav-toggle">
190 <a data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto">
191 <em class="material-icons">menu</em>
192
193 </a>
194 </div>
195 <div class="e-nav-container modal js-e-nav-container" data-backdrop="false">
196 <nav class="e-nav" aria-label="Mobile navigation">
197 <div class="e-nav-masthead">
198 <div class="e-logo">
199 <a href="/" class="e-logo-link" alt="Gå til forside">
200 <img src="@Logo" class="e-logo-img" alt="@Tagline - logo">
201 @if( string.IsNullOrEmpty( Tagline ) == false ){
202 <p class="e-logo-tagline">@Tagline</p>
203 }
204 </a>
205 </div>
206 <div class="e-nav-toggle e-header-btn">
207 <button type="button" data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto">
208 <em class="material-icons">close</em>
209 </button>
210 </div>
211
212 </div>
213 <section class="e-nav-global js-e-nav-global">
214 <ul class="nav">
215 @GetValue("DwNavigation(dwnavglobal)")
216 </ul>
217 </section>
218 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiesprimary)") ) == false ){
219 <section class="e-nav-utilities-primary">
220 <ul class="nav">
221 @GetValue("DwNavigation(dwnavutilitiesprimary)")
222 </ul>
223 </section>
224 }
225 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiessecondaryheader)") ) == false ){
226 <section class="e-nav-utilities-secondary">
227 <ul class="nav">
228 @GetValue("DwNavigation(dwnavutilitiessecondaryheader)")
229 </ul>
230 </section>
231 }
232 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavcontext)") ) == false ){
233 <section class="e-nav-context">
234 <ul class="nav">
235 @GetValue("DwNavigation(dwnavcontext)")
236 </ul>
237 </section>
238 }
239 </nav>
240 @* @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavlocalhorizontal)") ) == false ){
241 <section class="e-nav-local-horizontal">
242 @GetValue("DwNavigation(dwnavlocalhorizontal)")
243 </section>
244 } *@
245 </div>
246 }
247 </article>
248 </div>
249 </div>
250 </div>
251 </header>
252 }
253
254 <div class="@Espresso.Canvas.ClassList" id="js-e-canvas">
255 @{
256 string NavigationLocalHorizontalClassList = "e-nav-global-horizontal reset-animate";
257 @* reset-animate *@
258 string NavigationLocalHorizontalContainerClassList = "e-nav-local-container";
259 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) {
260 NavigationLocalHorizontalClassList += " " + Espresso.Item.NavigationLocalCustomClasses;
261 if( Espresso.Item.NavigationLocalAbsolute == "True" ) {
262 NavigationLocalHorizontalClassList += " is-absolute";
263 }
264 else{
265 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) {
266 NavigationLocalHorizontalClassList += " mt-" + Espresso.Item.NavigationLocalMarginTop;
267 }
268 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) {
269 NavigationLocalHorizontalClassList += " mb-" + Espresso.Item.NavigationLocalMarginBottom;
270 }
271 }
272 }
273 }
274 <section class="@NavigationLocalHorizontalClassList is-sticky" aria-label="Hjemmeside top">
275 <div class="nav-global-horizontal-container hidden-print" role="navigation" aria-label="Hoved menu">
276 <div class="container-fluid">
277 <div class="row">
278 <div class="col-12">
279 <h3 style="display: none;" id="menu">Hovedmenu</h3>
280 <div class="e-nav-global">
281 <ul class="nav navbar">
282 @GetValue("DwNavigation(dwnavgloballocal)")
283 @GetValue("DwNavigation(dwnavcta)")
284 </ul>
285 </div>
286 </div>
287 </div>
288 </div>
289 </div>
290 </section>
291
292 <main id="main" class="e-content" role="main">
293 <article id="dwcontentmain" class="e-content-main @Espresso.ContentArea.ClassList" aria-label="Main content">
294 @using Dynamicweb.Content
295 @{
296 string eBreadcrumbClasslist = "e-breadcrumb js-e-breadcrumb d-none d-lg-block";
297 if( Espresso.Item.BreadcrumbColor != "auto" && Espresso.Item.BreadcrumbColor != "none" && String.IsNullOrEmpty( Espresso.Item.Breadcrumb ) == false ){
298 eBreadcrumbClasslist += string.Format(" e-breadcrumb-{0}", Espresso.Item.Breadcrumb );
299 }
300 }
301
302 @if( Espresso.Item.Breadcrumb != "none" && String.IsNullOrEmpty( Espresso.Item.Breadcrumb ) == false ){
303 <section class="e-section @eBreadcrumbClasslist">
304 <div class="container-fluid">
305 <div class="row">
306 <div class="col-12">
307 <div class="row">
308 <div class="col-12">
309 <nav class="e-breadcrumb-container">
310 @GetValue("DwNavigation(dwnavbreadcrumb)")
311 </nav>
312 </div>
313 </div>
314 </div>
315 </div>
316 </div>
317 </section>
318 }
319 @{
320 string NavigationLocalVerticalClassList = "e-nav-local e-nav-local-vertical js-e-nav-local-vertical reset-animate";
321 string NavigationLocalVerticalContainerClassList = "e-nav-local-container";
322 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) {
323 NavigationLocalVerticalClassList += " " + Espresso.Item.NavigationLocalCustomClasses;
324 //NavigationLocalVerticalClassList += " col-3";
325
326 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) {
327 NavigationLocalVerticalClassList += " mt-" + Espresso.Item.NavigationLocalMarginTop;
328 }
329 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) {
330 NavigationLocalVerticalClassList += " mb-" + Espresso.Item.NavigationLocalMarginBottom;
331 }
332
333 if( Espresso.Item.NavigationLocalSticky == "True" ) {
334 NavigationLocalVerticalClassList += " is-sticky";
335 }
336 if( Espresso.Item.NavigationLocalAbsolute == "True" ) {
337 NavigationLocalVerticalClassList += " is-absolute";
338 }
339 else{
340 Espresso.ContentSection.ClassList.Clear();
341 Espresso.ContentSection.ClassList.AddClasses("col-12 col-lg-9 ml-auto");
342 }
343 }
344 }
345
346 @if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) {
347 <section class="e-section @NavigationLocalVerticalClassList">
348 <div class="container-fluid">
349 <div class="row">
350 <div class="col-12">
351 <div class="row">
352
353 <div class="col-3">
354 <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalVerticalContainerClassList">
355 <ul class="nav flex-column">
356 @if( Espresso.Item.NavigationLocalHeading != "" ){
357 <li class="e-nav-local-heading"><h2>@Espresso.Item.NavigationLocalHeading</h2></li>
358 }
359 @RenderNavigation( new {
360 id = "dwnav-local-" + Espresso.DynamicwebPage.ID,
361 parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID,
362 template = string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false ? Espresso.Item.NavigationLocalTemplate : "local-" + Espresso.Item.NavigationLocalLayout + ".xslt",
363 startlevel = Espresso.Item.NavigationLocalLevelStart,
364 endlevel = Espresso.Item.NavigationLocalLevelEnd,
365 expandmode = Espresso.Item.NavigationLocalPageTreeExpand == "True" ? "all" : "path",
366 } )
367 </ul>
368 </nav>
369 </div>
370
371 </div>
372 </div>
373 </div>
374 </div>
375 </section>
376 }
377
378
379 <section class="e-section">
380 @if(pageWrapper == true){
381 @:<div class="inner-section-wrapper">
382 @:<section class="e-section">
383 }
384 <div class="container-fluid">
385 <div class="row">
386 <div class="@Espresso.ContentSection.ClassList">
387 <div class="row">
388 @GetValue("DwContent(dwcontentmain)")
389 </div>
390 </div>
391 </div>
392 </div>
393 @if(pageWrapper == true){
394 @:</section>
395 @:</div>
396 }
397 </section>
398 </article>
399 </main>
400 </div>
401 @{
402 string LogoInverted = Espresso.Area.Item.LogoInverted;
403 string facebookLink = Espresso.Area.Item.FacebookLink;
404 string twitterLink = Espresso.Area.Item.TwitterLink;
405 string linkedinLink = Espresso.Area.Item.LinkedinLink;
406 string instagramLink = Espresso.Area.Item.InstagramLink;
407 string sitemapLink = Espresso.Area.Item.Sitemap;
408 string cookiesLink = Espresso.Area.Item.CookieMessage;
409 }
410
411 <footer class="e-footer hidden-print" role="contentinfo">
412 <article aria-label="Footer" class="e-footer-wrapper">
413 @if ( Espresso.Item.FooterHide != "True" )
414 {
415 <section class="e-footer-content e-section">
416 <div class="footer-container">
417 <div class="container-fluid">
418 <div class="hk-custom-footer-row row">
419 @RenderParagraphContent( (60975) )
420 @RenderParagraphContent( (60966) )
421 @RenderParagraphContent( (60967) )
422 @RenderParagraphContent( (60968) )
423 @RenderParagraphContent( (60969) )
424 </div>
425 <div class="row">
426 <div class="p p-imagetext col-12 col-sm-6">
427 <div class="h2 font-weight-normal m-0 p-0">Kulturen til forskel</div>
428 </div>
429 <div class="p p-imagetext col-12 offset-sm-3 col-sm-3">
430 <div class="footer-logo text-center">
431 <div class="h2 m-0 p-0">HOLSTEBRO</div>
432 <div class="h3 m-0 p-0 border-0 font-weight-normal">KOMMUNE</div>
433 </div>
434 </div>
435 </div>
436
437 @if ( string.IsNullOrEmpty( GetString( "DwNavigation(dwnavutilitiessecondaryfooter)" ) ) == false )
438 {
439 <div class="col-12">
440 <aside class="e-nav-utilities-secondary">
441 <ul class="nav nav-inline">
442 @GetValue("DwNavigation(dwnavutilitiessecondaryfooter)")
443 </ul>
444 </aside>
445 </div>
446 }
447 </div>
448 </div>
449 </section>
450 }
451 <section class="e-footer-copyright e-section">
452 <div class="footer-container">
453 <div class="container-fluid">
454 <div class="row row-xs-center">
455 <div class="col-12 col-sm-7 social-media-sub-footer">
456 @RenderParagraphContent( (60970) )
457 </div>
458 <div class="col-12 col-sm-5 text-left text-sm-right">
459 <p class="e-copyright">
460 Copyright ©
461 @GetGlobalValue( "Global:Server.Date.Year" )
462 @Espresso.Area.Item.CompanyName. Alle rettigheder forbeholdt.
463 </p>
464 </div>
465 </div>
466 </div>
467 </div>
468 </section>
469 </article>
470 </footer>
471 @if( Espresso.Area.Item.BackToTopLink == "True" ){
472 <a href="#top" class="e-back-to-top js-e-back-to-top d-print-none" aria-label="Gå til hjemmeside top" tabindex="0"><i class="material-icons">keyboard_arrow_up</i></a>
473 }
474
475
476 @{
477 string responsibleEditor = Espresso.Item.ResponsibleEditor ?? string.Empty;
478 List<User> users = new List<User>();
479
480 foreach( string user in responsibleEditor.Split( ',' ) ) {
481 int currentId;
482 if( int.TryParse( user, out currentId ) ){
483 User current = User.GetUserByID( currentId );
484 if( current != null ){
485 users.Add( current );
486 }
487 }
488 }
489 }
490
491 <span style="display: none;">
492 @Translate("Last_updated","Sidst opdateret") @Espresso.DynamicwebPage.Audit.LastModifiedAt.ToString("dd. MMMM yyyy") af
493 @foreach( User user in users ){<a class="editor-tag" href="mailto:@user.Email">@user.Name</a>}
494
495 <span class="indhold-tag">@Espresso.Item.ContentDeliveryName</span>
496 </span>
497
498 <script async="" src="/Files/Templates/Designs/espresso-v4/_assets/_dist/js/default.js?v=1.4.7"></script>
499
500 @* @if( Espresso.DynamicwebPage.ID != 1469) { *@
501
502 <script type="text/javascript">
503 window.addEventListener('CookieInformationConsentGiven', function (event) {
504 if (CookieInformation.getConsentGivenFor('cookie_cat_statistic')) {
505
506 window._monsido = window._monsido || {
507 token: "@monsidoToken",
508 statistics: {
509 enabled: true,
510 documentTracking: {
511 enabled: true,
512 documentCls: "monsido_download",
513 documentIgnoreCls: "monsido_ignore_download",
514 documentExt: ["pdf","doc"],
515 },
516 },
517 heatmap: {
518 enabled: true,
519 },
520 };
521 }
522 }, false);
523 </script>
524 <script type="text/javascript" data-category-consent="cookie_cat_statistic" src="" data-consent-src="https://app-script.monsido.com/v2/monsido-script.js"></script>
525
526 @*}*@
527 <input type="hidden" id="PageId" value="@pageId">
528 </body>
529 @GetValue( "CopyRightNotice" )
530 </html>