Error executing template "Designs/Alkmaar Marketing/_parsed/Event.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_ed87338fc284406b87ed16819295dc6d.<>c__DisplayClass3_0.b__5(Page p) in D:\virtual_hosts\alkmaarprachtstad.nl\files\Templates\Designs\Alkmaar Marketing\_parsed\Event.parsed.cshtml:line 478
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at CompiledRazorTemplates.Dynamic.RazorEngine_ed87338fc284406b87ed16819295dc6d.Execute() in D:\virtual_hosts\alkmaarprachtstad.nl\files\Templates\Designs\Alkmaar Marketing\_parsed\Event.parsed.cshtml:line 478
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, ITemplateSource templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate() in E:\Agent\_work\169\s\06 - Dynamicweb Host\Dynamicweb\Dynamicweb-9.9\Dynamicweb\Rendering\Template.cs:line 902

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb; 3 4 <!DOCTYPE html> 5 @{ 6 var httpdomain = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 7 var ogurl = string.Format("{0}{1}", httpdomain, GetGlobalValue("Global:Pageview.Url")); 8 var cultShort = GetString("Lang"); 9 } 10 <html lang="@cultShort"> 11 <head prefix="og: http://ogp.me/ns#"> 12 <meta charset="utf-8"> 13 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 14 @*<meta name="viewport" content="width=device-width, initial-scale=1">*@ 15 <meta name="viewport" content="width=device-width, initial-scale=1.0001, minimum-scale=1.0001, maximum-scale=1.0001"> 16 <meta name="theme-color" content="#fff"> 17 18 <meta property="og:site_name" content="Alkmaar Marketing"> 19 <meta property="og:url" content="@ogurl"> 20 21 @RenderSnippet("ogTags") 22 23 <title>@GetValue("Title")</title> 24 @GetValue("MetaTags") 25 @GetValue("CopyRightNotice") 26 27 <link href="//fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"> 28 <link href="/Files/Templates/Designs/Alkmaar%20Marketing/dist/css/style.min.css?v=1.0.2" rel="stylesheet"> 29 <link rel="icon" href="/Files/Templates/Designs/Alkmaar%20Marketing/img/favicon.png" type="image/x-icon"> 30 31 32 @* <link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css"> *@ 33 34 @GetString("Item.Area.Custom_Html_Head") 35 36 @renderRichSnippet() 37 @renderReviewSnippet() 38 39 @GetValue("Stylesheets") 40 @GetValue("Javascripts") 41 </head> 42 43 <body> 44 @GetString("Item.Area.Google_Tag_Manager") 45 46 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 47 @using Dynamicweb; 48 @using Dynamicweb.Content; 49 @using System.Globalization; 50 <!-- Begin header --> 51 52 @{ 53 var introheader = GetString("Item.Page.Intro_Title"); 54 var introcontent = GetString("Item.Page.Intro_Content"); 55 var introbuttontext = GetString("Item.Page.Intro_Button_Text"); 56 var introbuttonlink = GetString("Item.Page.Intro_Button_Url"); 57 var introimg = GetString("Item.Page.Intro_Image"); 58 var introimgMobile = GetString("Item.Page.Image_Mobile"); 59 var imgtag = !string.IsNullOrWhiteSpace(introimg) ? string.Format("background-image: url('{0}');", introimg) : ""; 60 var ishome = GetInteger("DwAreaFirstPageID") == GetInteger("Global.PageId"); 61 var homeheader = ishome ? "header--homepage" : ""; 62 63 var obj_pageViewCurrent = Dynamicweb.Frontend.PageView.Current(); 64 string areaID = obj_pageViewCurrent.AreaID.ToString(); 65 string countryCode = GetGlobalValue("Global:Area.Culture.CountryCode"); 66 67 CultureInfo cultureCurrent = CultureInfo.GetCultureInfo(Pageview.Area.Culture); 68 69 string currentCultureFlag = string.Format("/Admin/Images/Flags/flag_{0}.png", Pageview.Area.Culture.Substring(3, 2).ToLower()); 70 71 var staticLinks = GetLoop("Item.Area.StaticLinks"); 72 var languages = GetLoop("Languages").Where(x => !x.GetBoolean("IsCurrent")); 73 var listType = GetString("Item.Area.ListType"); 74 75 string defaultLogo = "/Files/Templates/Designs/Alkmaar Marketing/img/header__logo.png"; 76 string websiteLogo = !string.IsNullOrEmpty(GetString("Item.Area.Logo")) ? GetString("Item.Area.Logo") : defaultLogo; 77 var checkPageforPurpleWave = GetGlobalValue("Global:Page.ID") == "24375" ? "header--homepage" : ""; 78 } 79 80 <header class="header @homeheader @checkPageforPurpleWave" style="@imgtag" data-mobileimg="@introimgMobile" data-introimg="@introimg"> 81 <section class="intro"> 82 <div class="intro__content"> 83 @if (!string.IsNullOrWhiteSpace(introheader)) 84 { 85 <h1 class="intro__header">@introheader</h1>} 86 @if (!string.IsNullOrWhiteSpace(introcontent)) 87 { 88 <p>@introcontent</p>} 89 @if (!string.IsNullOrWhiteSpace(introbuttontext) && !string.IsNullOrWhiteSpace(introbuttonlink)) 90 { 91 <a href="@introbuttonlink" class="intro__cta">@introbuttontext</a>} 92 </div> 93 </section> 94 95 <section class="header__container header__container--sticky"> 96 <a href="/" class="header__logo"> 97 <figure class="header__logo-img"></figure> 98 </a> 99 100 <nav class="mainmenu"> 101 102 <div class="mainmenu__items"> 103 @if (ishome) 104 { 105 <ul class="mainmenu__list mainmenu__list--homemenu hidden-md-up"> 106 @GetValue("DwNavigation(homemenu)") 107 </ul> 108 } 109 <ul class="mainmenu__list"> 110 @GetValue("DwNavigation(mainmenu)") 111 </ul> 112 </div> 113 @{ 114 var searchpage = GetString("Item.Area.SearchPageID"); 115 var searchplaceholder = Translate("Search.PlaceholderText", "Waar bent u naar op zoek?"); 116 <section class="searchbox"> 117 <form class="searchbox__form" method="get" action="/Default.aspx"> 118 <input type="hidden" name="ID" value="@searchpage"> 119 <input type="text" name="q" value="" placeholder="@searchplaceholder" class="searchbox__input"> 120 <i class="searchbox__close hidden-md-up"></i> 121 </form> 122 <a href="#" class="mainmenu__searchtoggle"></a> 123 </section> 124 } 125 126 <div class="mainmenu__social"> 127 @{ 128 var fbLink = GetString("Item.Area.Facebook"); 129 var twitterLink = GetString("Item.Area.Twitter"); 130 var instagramLink = GetString("Item.Area.Instagram"); 131 132 if (!string.IsNullOrWhiteSpace(fbLink)) 133 { 134 <a href="@fbLink" target="_blank" title="Facebook" class="mainmenu__sociallink mainmenu__sociallink--fb"> 135 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--facebook.png"> 136 </a> 137 } 138 if (!string.IsNullOrWhiteSpace(twitterLink)) 139 { 140 <a href="@twitterLink" target="_blank" title="Twitter" class="mainmenu__sociallink mainmenu__sociallink--twitter"> 141 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--twitter.png"> 142 </a> 143 } 144 if (!string.IsNullOrWhiteSpace(instagramLink)) 145 { 146 <a href="@instagramLink" target="_blank" title="Instagram" class="mainmenu__sociallink mainmenu__sociallink--ig"> 147 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--instagram.png"> 148 </a> 149 } 150 } 151 </div> 152 </nav> 153 154 <ul class="mainmenu__buttons" data-test='@GetValue("Area.ID") @GetValue("DwAreaFirstPageID")'> 155 <!-- <li class="mainmenu__buttons-button"><a href="#" class="mainmenu__searchtoggle"></a></li> --> 156 <li class="mainmenu__buttons-button"> 157 <a href="#" id="language" class="mainmenu__languageswitch" style="background-image: url('@currentCultureFlag');"></a> 158 <ul id="languageDropdown" class="mainmenu__languageswitch--dropdown" role="menu" aria-labelledby="languageselect"> 159 @if ((listType == "all" || listType == "language") && languages.Any()) 160 { 161 foreach (var language in languages) 162 { 163 164 var homepage = language.GetInteger("FirstActivePageID"); 165 var name = language.GetString("Name"); 166 string languageCode = language.GetString("Culture").Substring(3, 2).ToLower(); 167 int firstPageID = language.GetInteger("FirstActivePageID"); 168 //int pageId = language.GetInteger("DwPageID"); 169 int pageId = language.GetInteger("PageID"); 170 int areaId = language.GetInteger("ID"); 171 string isCurrent = language.GetBoolean("IsCurrent") ? " selected " : ""; 172 bool isMaster = language.GetBoolean("IsMaster"); 173 174 //Page linkPage = Page.GetPageBySql("Select * from Page where PageAreaID = '" + areaID + "' and PageMasterPageID = '" + pageId + "'"); 175 string pageVersionID = pageId > 0 ? pageId.ToString() : firstPageID.ToString(); //isMaster && linkPage != null ? linkPage.ID.ToString() : masterPage.ToString(); 176 177 string pageUrl = "/Default.aspx?ID=" + pageVersionID; 178 var cultureFlag = string.Format("/Admin/Images/Flags/flag_{0}.png", languageCode); 179 180 181 182 183 //int localizedPageID = "1"; //pageId > 0 ? pageService.GetPageIDByMasterID(pageId, areaId) : homepage; 184 //pageId = localizedPageID == 0 ? pageId : localizedPageID; 185 //string pageUrl = "";// Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(pageId); 186 187 <li role="presentation" data-current="@isCurrent"> 188 <a role="menuitem" tabindex="-1" href='@pageUrl' title="@name" style="background-image: url(@cultureFlag);" class="mainmenu__languageswitch"></a> 189 </li> 190 191 } 192 } 193 @if ((listType == "all" || listType == "static") && staticLinks.Any()) 194 { 195 foreach (var staticLink in staticLinks) 196 { 197 var txt = staticLink.GetString("Item.Area.StaticLinks.Title"); 198 var link = staticLink.GetString("Item.Area.StaticLinks.Link"); 199 var icon = staticLink.GetString("Item.Area.StaticLinks.Icon"); 200 var flag = string.Format("/Admin/Images/Flags/flag_{0}.png", icon); 201 202 if (!string.IsNullOrWhiteSpace(txt) && !string.IsNullOrWhiteSpace(link)) 203 { 204 <li role="presentation"> 205 <a role="menuitem" tabindex="-1" href="@link" title="@txt" style="background-image: url(@flag);" target="_blank" class="mainmenu__languageswitch"></a> 206 </li> 207 } 208 } 209 } 210 211 </ul> 212 </li> 213 <li class="mainmenu__buttons-button"><a href="#" class="mainmenu__toggle"></a></li> 214 </ul> 215 <a href="https://www.alkmaarprachtstad.nl/vvv-alkmaar" target="_blank" class="header__vvv-logo"> 216 <img src="/Files/Images/vvv_los.png"> 217 </a> 218 </section> 219 </header> 220 <!-- End header --> 221 222 223 @if (GetInteger("DwAreaFirstPageID") == GetInteger("Global.PageId") && !(string.IsNullOrWhiteSpace(GetString("Item.Area.ShoutboxSubtitle.Value")) && string.IsNullOrWhiteSpace(GetString("Item.Area.ShoutboxTitle.Value")))) 224 { 225 var link = GetString("Item.Area.ShoutLink.Value"); 226 <div class="shoutbox"> 227 <a href="@link" class="shoutbox__link"> 228 <span class="shoutbox__date">@GetString("Item.Area.ShoutboxSubtitle.Value")</span> 229 <span class="shoutbox__title">@GetString("Item.Area.ShoutboxTitle.Value")</span> 230 </a> 231 </div> 232 } 233 234 @if (GetBoolean("Item.Page.ShowShoutbox")) 235 { 236 var link = GetString("Item.Page.ShoutboxLink"); 237 var text = GetString("Item.Page.ShoutboxText"); 238 bool isExternal = link.StartsWith("http"); 239 bool hasDefault = link.StartsWith("Default.aspx"); 240 var url = isExternal || hasDefault ? @link : "/Default.aspx?Id=" + @link; 241 var target = isExternal ? "_blank" : "_self"; 242 243 <div class="shoutbox shoutbox--custom"> 244 <a href="@url" class="shoutbox__link" target="@target"> 245 <span class="shoutbox__title">@text</span> 246 </a> 247 </div> 248 249 @SnippetStart("ShoutboxButton") 250 <div> 251 <a href="/Default.aspx?Id=@link" class="filters__input filters__input--diap">@text</a> 252 </div> 253 @SnippetEnd("ShoutboxButton") 254 } 255 256 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 257 @using Dynamicweb; 258 @using System.Linq; 259 @using Bluedesk.DynamicWeb.ExtensionMethods; 260 @using Bluedesk.DynamicWeb.ItemTypes.Events; 261 262 263 264 @SnippetStart("AddThis") 265 <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-58b57d1ac939fad1"></script> 266 @SnippetEnd("AddThis") 267 268 @{ 269 // What are we showing ? 270 var currentItemType = Pageview.Item.SystemName; 271 272 // check if we are showing the main event 273 var isMainEvent = !Pageview.Page.Parent.Item.SystemName.Equals(currentItemType); 274 275 var _data = Event.CreateFrom(Pageview.Item.SerializeTo()); 276 var variant_data = new Event(); 277 278 if (!isMainEvent) 279 { 280 // Event variant is displayed, we should start with loading the parent item for the default values. SerializeTo() with no parameters is an extension from the Bluedesk.DynamicWeb library 281 _data.DeserializeFrom(Pageview.Page.Parent.Item.SerializeTo()); 282 variant_data.DeserializeFrom(Pageview.Item.SerializeTo()); 283 284 // merge related event data into the main event data. All available data from the related office will override de data of the main office. 285 // Take special care of the Name fields, they should both be filled. Title for the url and OfficeName for the header. 286 _data.Merge(variant_data); 287 } 288 } 289 290 @{ 291 bool multipleDays = (_data.End.DayOfYear > _data.Start.DayOfYear) || (_data.End.Year > _data.Start.Year) || (_data.Start != null && _data.End == null); 292 293 var category = new Dynamicweb.Content.Page(); 294 if (isMainEvent) 295 { 296 category = Pageview.Page.Parent.Item.SystemName.Equals("EventCategory") ? Pageview.Page.Parent : null; 297 } 298 else 299 { 300 category = Pageview.Page.Parent.Parent.Item.SystemName.Equals("EventCategory") ? Pageview.Page.Parent.Parent : null; 301 } 302 } 303 304 305 <section class="container-fluid"> 306 <div class="row no-gutter detailpage"> 307 <section class="col-xs-12 col-md-6 col-lg-5 col-lg-offset-1"> 308 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 309 @using Dynamicweb; 310 311 @{ 312 var title = _data.Header; //GetString("Item.Header"); 313 var date = GetDate("Item.PublishDate").ToString("dd-MM-yyyy"); ; //GetString("Item.PublishDate"); 314 var subtitle = _data.Subheader; // GetString("Item.Subheader"); 315 var content = _data.Content; //GetString("Item.Content"); 316 var btntext = _data.ButtonText;// GetString("Item.ButtonText"); 317 var btnurl = _data.ButtonLink;// GetString("Item.ButtonLink"); 318 var sale = GetString("Item.Actie"); 319 } 320 321 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 322 @using Dynamicweb; 323 324 @if (!GetBoolean("Item.Page.HideBreadcrumbs")) 325 { 326 <nav class="breadcrumbnav"> 327 @GetValue("DwNavigation(breadcrumblist)") 328 </nav> 329 } 330 331 <section class="detail"> 332 @{ 333 if (!string.IsNullOrWhiteSpace(title)) 334 { 335 <h1 class="detail__header">@title</h1> 336 } 337 if (!string.IsNullOrWhiteSpace(subtitle)) 338 { 339 <h2 class="detail__subheader">@subtitle</h2> 340 } 341 if (!string.IsNullOrWhiteSpace(date) && date != "01-01-0001") 342 { 343 <p class="detail__publish-date">@Translate("PublishedOn.News.Date", "Gepubliceerd op"): @date</p> 344 } 345 if (!string.IsNullOrWhiteSpace(content)) 346 { 347 <article class="detail__content"> 348 @content 349 </article> 350 } 351 if (!string.IsNullOrWhiteSpace(sale)) 352 { 353 <strong class="detail__sale">@sale</strong> 354 } 355 if (!string.IsNullOrWhiteSpace(btntext) && !string.IsNullOrWhiteSpace(btnurl)) 356 { 357 <footer class="detail__footer"> 358 <a href="@btnurl" class="detail__cta">@btntext</a> 359 </footer> 360 } 361 } 362 </section> 363 </section> 364 <aside class="meta col-xs-12 col-md-5 col-md-offset-1"> 365 <div class="row meta__content"> 366 <strong class="meta__header">Evenement Informatie:</strong> 367 <table> 368 @if (multipleDays) 369 { 370 <tr> 371 <td> 372 Van: 373 </td> 374 <td> 375 @_data.Start.ToString("dd MMM yyyy") 376 </td> 377 </tr> 378 <tr> 379 <td> 380 Tot: 381 </td> 382 <td> 383 @_data.End.ToString("dd MMM yyyy") 384 </td> 385 </tr> 386 } 387 else 388 { 389 <tr> 390 <td> 391 <i class="far fa-calendar"></i>Datum: 392 </td> 393 <td> 394 @_data.Start.ToString("dd MMM yyyy") 395 </td> 396 </tr> 397 } 398 @if (!multipleDays) 399 { 400 <tr> 401 <td> 402 <i class="far fa-clock"></i>Tijd: 403 </td> 404 <td>@_data.Start.ToString("HH:mm") - @_data.End.ToString("HH:mm")</td> 405 </tr> 406 } 407 @if (!string.IsNullOrWhiteSpace(_data.Location)) 408 { 409 <tr> 410 <td> 411 <i class="far fa-map-marker"></i>Locatie: 412 </td> 413 <td>@_data.Location</td> 414 </tr> 415 } 416 @if (category != null && !string.IsNullOrWhiteSpace(category.Item["Name"].ToString())) 417 { 418 <tr> 419 <td> 420 <i class="far fa-list-alt"></i>Categorie: 421 </td> 422 <td> 423 <a href="/Default.aspx?ID=@category.ID"> 424 @category.Item["Name"].ToString() 425 </a> 426 </td> 427 </tr> 428 } 429 @if (!string.IsNullOrWhiteSpace(_data.ContactUrl)) 430 { 431 var clearurl = _data.ContactUrl.Contains("http") ? _data.ContactUrl : "http://" + _data.ContactUrl; 432 <tr> 433 <td> 434 <i class="far fa-globe"></i>Website: 435 </td> 436 <td><a href="@clearurl" target="_blank">@_data.ContactUrl.Replace("http://", "").Replace("https://", "")</a></td> 437 </tr> 438 } 439 @if (!string.IsNullOrWhiteSpace(_data.TicketText)) 440 { 441 var urlTicket = _data.TicketLink; 442 <tr> 443 <td> 444 <i class="far fa-ticket"></i>Tickets: 445 </td> 446 <td> 447 @if (_data.TicketLink != "") 448 { 449 <a href="@urlTicket" target="_blank">@_data.TicketText</a> 450 } 451 else 452 { 453 <span>@_data.TicketText</span> 454 } 455 </td> 456 </tr> 457 } 458 </table> 459 460 </div> 461 <figure class="meta__image" style="background-image: url('@_data.Image');"></figure> 462 </aside> 463 </div> 464 465 @if (category != null) 466 { 467 <nav class="detailnav"> 468 @{ 469 var siblings = Services.Pages.GetPagesByParentID(category.ID).Where(p => p.Active).ToList(); 470 471 var indx = siblings.FirstOrDefault(c => c.ID.Equals(Pageview.Page.ID)); 472 473 if (indx == null) 474 { 475 indx = siblings.FirstOrDefault(c => c.ID.Equals(Pageview.Page.Parent.ID)); 476 } 477 478 var prevpage = siblings.OrderByDescending(p => p.Sort).FirstOrDefault(p => p.Sort < indx.Sort); 479 var nextpage = siblings.OrderBy(p => p.Sort).FirstOrDefault(p => p.Sort > indx.Sort); 480 481 if (prevpage != null) 482 { 483 <a href="/Default.aspx?ID=@prevpage.ID" class="detailnav__back"></a> 484 } 485 486 <a href="/Default.aspx?ID=@category.ID" class="detailnav__overview">Naar overzicht</a> 487 488 if (nextpage != null) 489 { 490 <a href="/Default.aspx?ID=@nextpage.ID" class="detailnav__next"></a> 491 } 492 } 493 </nav> 494 } 495 </section> 496 497 @GetValue("DwContent(content)") 498 499 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 500 @using Dynamicweb; 501 502 @{ 503 var newsletterid = GetInteger("Item.Area.NewsletterSubscribeParagraph"); 504 if (newsletterid > 0) 505 { 506 @RenderParagraphContent(newsletterid) 507 } 508 } 509 510 <footer class="footer"> 511 512 <section class="footer__middle container"> 513 <div class="row"> 514 <div class="col-md-6"> 515 @{ 516 var footertitle = GetString("Item.Area.FooterContent_Title"); 517 var footerimg = GetString("Item.Area.FooterContent_Image"); 518 var footertext = GetString("Item.Area.FooterContent_Text"); 519 } 520 <h4 class="footer__subtitle">@footertitle</h4> 521 <div class="row"> 522 <div class="col-md-4"> 523 <img src="@footerimg" class="footer__img"> 524 </div> 525 <div class="col-md-5">@footertext</div> 526 </div> 527 </div> 528 529 <div class="col-md-6"> 530 <nav class="footer-nav row"> 531 @GetValue("DwNavigation(footernavigation)") 532 </nav> 533 </div> 534 </div> 535 536 537 </section> 538 <section class="footer__bottom container"> 539 <div class="row"> 540 <div class="footer__social col-xs-12 col-sm-6 col-lg-2"> 541 @{ 542 var fb = GetString("Item.Area.Facebook"); 543 var twitter = GetString("Item.Area.Twitter"); 544 var instagram = GetString("Item.Area.Instagram"); 545 546 if (!string.IsNullOrWhiteSpace(fb)) 547 { 548 <a href="@fb" target="_blank" title="Facebook" class="footer__sociallink footer__sociallink--fb"> 549 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--facebook.png"> 550 </a> 551 } 552 if (!string.IsNullOrWhiteSpace(twitter)) 553 { 554 <a href="@twitter" target="_blank" title="Twitter" class="footer__sociallink footer__sociallink--twitter"> 555 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--twitter.png"> 556 </a> 557 } 558 if (!string.IsNullOrWhiteSpace(instagram)) 559 { 560 <a href="@instagram" target="_blank" title="Instagram" class="footer__sociallink footer__sociallink--ig"> 561 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/socialmedia__icon--instagram.png"> 562 </a> 563 } 564 } 565 </div> 566 567 <div class="wifi col-xs-12 col-sm-6 col-lg-5"> 568 <img src="/Files/Templates/Designs/Alkmaar%20Marketing/img/icon__wifi.png" class="wifi__img"> 569 <span class="wifi__content">@GetString("Item.Area.WIFI")</span> 570 </div> 571 572 <nav class="legal col-xs-12 col-lg-5"> 573 @GetValue("DwNavigation(bottomnavigation)") 574 </nav> 575 </div> 576 </section> 577 </footer> 578 579 @RenderSnippet("AddThis") 580 581 582 583 @*<script src="//maps.googleapis.com/maps/api/js"></script>*@ 584 <script type="text/javascript" src="/Files/Templates/Designs/Alkmaar%20Marketing/dist/js/main.min.js?v=1.0.1"></script> 585 586 </body> 587 </html> 588 @helper renderRichSnippet() 589 { 590 <script type="application/ld+json"> 591 [{ 592 "@@context": "http://schema.org", 593 "@@type": "Organization", 594 "name" : "@GetString("DwAreaName")", 595 "url": "@Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()", 596 "sameAs" : "@GetString("Item.Area.Facebook")", 597 "logo": "@Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()/Files/Templates/Designs/Alkmaar Marketing/img/header__logo.png", 598 "contactPoint" : [{ 599 "@@type" : "ContactPoint", 600 "telephone" : "@GetString("Item.Area.Phonenumber")", 601 "contactType" : "customer service" , 602 "@@context": "http://schema.org", 603 "@@id": "@Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()", 604 "name": "@GetString("DwAreaName")", 605 "url": "@Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()" 606 }], 607 "address": { 608 "@@type": "PostalAddress", 609 "streetAddress": "@GetString("Item.Area.StreetAddress")", 610 "addressLocality": "@GetString("Item.Area.AddressLocality")", 611 "addressRegion": "@GetString("Item.Area.AddressRegion")", 612 "postalCode": " @GetString("Item.Area.PostalCode")", 613 "addressCountry": "@GetString("Item.Area.AddressCountry")" 614 } 615 }, 616 { 617 "@@context": "http://schema.org", 618 "@@type": "WebSite", 619 "name" : "@GetString("DwAreaName")", 620 "alternateName" : "Alkmaar Marketing", 621 "url": "@Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()", 622 "potentialAction": { 623 "@@type": "SearchAction", 624 "target": " @Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain()/default.aspx?id=@GetString("Item.Area.SearchPage")&q={search_term_string}", 625 "query-input": "required name=search_term_string" 626 } 627 }] 628 </script> 629 } 630 631 632 <!-- Structured Data JSON-LD --> 633 @helper renderReviewSnippet() 634 { 635 var reviewName = GetString("Item.Area.Review_Name") != null ? GetString("Item.Area.Review_Name") : ""; 636 var reviewBestRating = GetString("Item.Area.Review_Best_Rating") != null ? GetString("Item.Area.Review_Best_Rating") : ""; 637 var reviewWorstRating = GetString("Item.Area.Review_Worst_Rating") != null ? GetString("Item.Area.Review_Worst_Rating") : ""; 638 var reviewRatingValue = GetString("Item.Area.Review_Rating_Value") != null ? GetString("Item.Area.Review_Rating_Value") : ""; 639 var reviewCount = GetString("Item.Area.Review_Count") != null ? GetString("Item.Area.Review_Count") : ""; 640 var reviewUrl = GetString("Item.Area.Review_URL") != null ? GetString("Item.Area.Review_URL") : ""; 641 642 643 <script type="application/ld+json"> 644 { 645 "@@context": "http://schema.org", 646 "@@type": "Product", 647 "name": "@reviewName", 648 "url":"@reviewUrl", 649 "aggregateRating": { 650 "@@type": "AggregateRating", 651 "bestRating": "@reviewBestRating", 652 "worstRating": "@reviewWorstRating", 653 "ratingValue": "@reviewRatingValue", 654 "reviewCount": "@reviewCount" 655 } 656 } 657 </script> 658 }