Error executing template "Designs/Turf/_parsed/Turf_SliderBanner_Page.parsed.cshtml"
System.TypeInitializationException: The type initializer for 'System.Collections.Generic.EqualityComparer`1' threw an exception. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Collections.Generic.EqualityComparer`1.CreateComparer()
   at System.Collections.Generic.EqualityComparer`1..cctor()
   --- End of inner exception stack trace ---
   at System.Collections.Generic.EqualityComparer`1.get_Default()
   at System.Array.IndexOf[T](T[] array, T value, Int32 startIndex, Int32 count)
   at System.Array.IndexOf[T](T[] array, T value)
   at System.SZArrayHelper.Contains[T](T value)
   at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value)
   at Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFilter.Filter(Diagnostic d, Int32 warningLevelOption, NullableContextOptions nullableOption, ReportDiagnostic generalDiagnosticOption, IDictionary`2 specificDiagnosticOptions)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.FilterDiagnostic(Diagnostic diagnostic)
   at Microsoft.CodeAnalysis.Compilation.FilterAndAppendDiagnostics(DiagnosticBag accumulator, IEnumerable`1 incoming, HashSet`1 exclude)
   at Microsoft.CodeAnalysis.Compilation.FilterAndAppendAndFreeDiagnostics(DiagnosticBag accumulator, DiagnosticBag& incoming)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, CompilationTestData testData, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, CancellationToken cancellationToken)
   at RazorEngine.Roslyn.CSharp.RoslynCompilerServiceBase.CompileType(TypeContext context)
   at RazorEngine.Templating.RazorEngineCore.CreateTemplateType(ITemplateSource razorTemplate, Type modelType)
   at RazorEngine.Templating.RazorEngineCore.Compile(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
   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.<RunCompile>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 Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits ViewModelTemplate<PageViewModel> 2 3 @using PgwSeeds.Turf; 4 @using Dynamicweb.Frontend; 5 @using Dynamicweb.Rendering; 6 @using System.Configuration 7 @using System.Web; 8 @using System.Web.Optimization 9 @using PgwSeeds.Turf; 10 @using PgwSeeds.Common 11 12 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 13 @using PgwSeeds.Turf 14 @using PgwSeeds.Common 15 @using Dynamicweb; 16 @using Dynamicweb.Frontend; 17 18 19 @helper RenderContactTile(IList<ItemViewModel> contacts, string contactUsPage) 20 { 21 <div class="contact-tile-outer-wrap custom-contact-details"> 22 <div class="contact-tile-wrap contact-tile-wrap-footer"> 23 @{ 24 25 foreach (var contact in contacts) 26 { 27 28 var phoneNumber = contact.GetString("PhoneNumber"); 29 var altPhoneNumber = contact.GetString("PhoneNumberAlternate"); 30 <h4>@contact.GetString("ContactName")</h4> 31 <ul class="list-inline text-uppercase"> 32 <li> 33 <span class="glyphicon glyphicon-earphone"></span> 34 <a href="tel: @phoneNumber"> 35 @phoneNumber 36 </a> 37 38 39 </li> 40 41 @if (!string.IsNullOrEmpty(altPhoneNumber)) 42 { 43 <li> 44 <span class="glyphicon glyphicon-earphone"></span> 45 <a href="tel: @altPhoneNumber"> 46 @altPhoneNumber 47 </a> 48 </li> 49 } 50 51 <li> 52 <span class="glyphicon glyphicon-envelope"></span> 53 <a href="mailto:@contact.GetString("EmailAddress")"> 54 Email Me 55 </a> 56 </li> 57 58 </ul> 59 } 60 } 61 </div> 62 <a class="animate-right" href="@contactUsPage"> 63 <span>Contact your local rep</span> 64 <span class="rounded-icon icon fa fa-angle-right"></span> 65 </a> 66 </div> 67 68 69 } 70 71 @helper RenderHomeFooterLinks() 72 { 73 74 var aboutUsLinks = this.Model.Area.Item.GetItems("AboutUsLinks"); 75 var newZealandPageUrl = this.Model.Area.Item.GetString("NewZealandPage"); 76 var australiaPageUrl = this.Model.Area.Item.GetString("AustraliaPage"); 77 var newZealandPages = Services.Pages.GetPagesByParentID(newZealandPageUrl.GetPageId()); 78 var australiaPages = Services.Pages.GetPagesByParentID(australiaPageUrl.GetPageId()); 79 var aboutUs = this.Model.Area.Item.GetString("AboutUsPage"); 80 <div class="col-md-3 col-sm-3 col-xs-6"> 81 <strong><a href="Default.aspx?ID=@newZealandPageUrl.GetPageId()" target="" alt="New Zealand">New Zealand</a></strong> 82 83 <ul class="list-unstyled"> 84 @foreach (var page in newZealandPages.Where(x => x.Published && x.ShowInSitemap)) 85 { 86 <li><a href="Default.aspx?ID=@page.ID" target="" alt="@page.MenuText">@page.MenuText</a></li> 87 } 88 </ul> 89 </div> 90 <div class="col-md-3 col-sm-3 col-xs-6"> 91 <strong><a href="Default.aspx?ID=@australiaPageUrl.GetPageId()" target="" alt="Australia">Australia</a></strong> 92 <ul class="list-unstyled"> 93 @foreach (var page in australiaPages.Where(x => x.Published && x.ShowInSitemap)) 94 { 95 <li><a href="Default.aspx?ID=@page.ID" target="" alt="@page.MenuText">@page.MenuText</a></li> 96 } 97 </ul> 98 </div> 99 <div class="col-md-3 col-sm-3 col-xs-6"> 100 <strong>About Us</strong> 101 <ul class="list-unstyled"> 102 <li><a href="@aboutUs" target="" alt="About">About</a></li> 103 @foreach (var link in aboutUsLinks) 104 { 105 var url = PgwSeeds.Common.LinkResolver.GetUrl(link.GetString("Link")); 106 <li><a href="@url" target="" alt="@link.GetString("Name")">@link.GetString("Name")</a></li> 107 } 108 </ul> 109 </div> 110 } 111 112 @helper RenderCountryFooterLinks(IEnumerable<Dynamicweb.Content.Page> pages, IList<ItemViewModel> terms) 113 { 114 <div class="col-md-3 col-sm-3 col-xs-6"> 115 <strong>Sections</strong> 116 117 <ul class="list-unstyled"> 118 @foreach (var page in pages.Where(x => x.Published && x.ShowInSitemap)) 119 { 120 <li><a href="Default.aspx?ID=@page.ID" target="" alt="@page.MenuText">@page.MenuText</a></li> 121 } 122 </ul> 123 </div> 124 125 if (terms != null) 126 { 127 <div class="col-md-3 col-sm-3 col-xs-6"> 128 <strong>Terms</strong> 129 130 <ul class="list-unstyled"> 131 @foreach (var term in terms) 132 { 133 var url = LinkResolver.GetUrl(term.GetString("Link")); 134 <li><a href="@url" target="" alt="@term.GetString("Name")">@term.GetString("Name")</a></li> 135 } 136 </ul> 137 </div> 138 } 139 } 140 141 @helper RenderFooter() 142 { 143 144 bool isHomePage = true; 145 var topPage = this.Pageview.Page.GetTopLevelParentPage(); 146 var area = topPage.MenuText; 147 148 IEnumerable<Dynamicweb.Content.Page> pages = null; 149 IList<ItemViewModel> terms = null; 150 IList<ItemViewModel> contacts = null; 151 string contactUsPage = ""; 152 switch (area) 153 { 154 case "Australia": 155 var australiaPageUrl = this.Model.Area.Item.GetString("AustraliaPage"); 156 pages = Services.Pages.GetPagesByParentID(australiaPageUrl.GetPageId()); 157 158 terms = this.Model.Area.Item.GetItems("AustraliaTerms"); 159 contacts = this.Model.Area.Item.GetItems("AustraliaContacts"); 160 contactUsPage = this.Model.Area.Item.GetString("AustraliaContactPage"); 161 isHomePage = false; 162 break; 163 case "New Zealand": 164 var newZealandPageUrl = this.Model.Area.Item.GetString("NewZealandPage"); 165 pages = Services.Pages.GetPagesByParentID(newZealandPageUrl.GetPageId()); 166 terms = this.Model.Area.Item.GetItems("NewZealandTerms"); 167 contacts = this.Model.Area.Item.GetItems("NewZealandContacts"); 168 contactUsPage = this.Model.Area.Item.GetString("NewZealandContactPage"); 169 isHomePage = false; 170 break; 171 } 172 var footerClass = !isHomePage ? "contact-sticky-tile" : ""; 173 174 <img src="/Files/Templates/Designs/Turf/assets/img/geometric.png" maxheight="120" 175 class="img-responsive footer-geometric"> 176 <img src="/Files/Templates/Designs/Turf/assets/img/geometric-small.png" 177 class="img-responsive footer-geometric-small"> 178 <footer class="container-fluid @footerClass"> 179 <div class="max-width-wrap"> 180 181 @if (!isHomePage) 182 { 183 <div class="clearfix"> 184 <div class="clearfix"> 185 <div class="mobile-compact-contact-wrap hidden-md hidden-lg col-xs-12 col-sm-6"> 186 <a class="collapsed animate-right" data-target="#contact-footer-tile" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="contact-footer-tile"> 187 <h4> 188 Need to get in touch? 189 <span class="rounded-icon icon fa fa-angle-right"></span> 190 </h4> 191 <img src="/Files/Templates/Designs/Turf/assets/img/Phone.jpg" maxheight="120" 192 class="img-responsive img-circle" alt="General Contact" maxwidth="120"> 193 </a> 194 </div> 195 </div> 196 197 <div class="clearfix"> 198 <div class="col-sm-5 pull-right hidden-sm hidden-xs contact-footer-desktop"> 199 <div class="contact-tile-outer-wrap"> 200 <div class="contact-us-greeting"> 201 <div class="contact-us-greeting-inner"> 202 <a class="collapsed animate-right" data-target="#contact-footer-tile" role="button" data-toggle="collapse" aria-expanded="false" aria-controls="contact-footer-tile"> 203 <h4> 204 Need to get in touch? <span class="rounded-icon icon fa fa-angle-right hidden-md hidden-lg"></span> 205 </h4> 206 </a> 207 </div> 208 </div> 209 </div> 210 </div> 211 </div> 212 213 214 <div class="hidden-lg hidden-md collapseable collapse" id="contact-footer-tile"> 215 @RenderContactTile(contacts, contactUsPage) 216 </div> 217 218 </div> 219 } 220 221 222 <div class="row"> 223 <div class="col-md-6 col-sm-12 link-tiles-wrap"> 224 <div class="row"> 225 @{ 226 if (isHomePage) 227 { 228 @RenderHomeFooterLinks() 229 } 230 else 231 { 232 @RenderCountryFooterLinks(pages, terms) 233 } 234 235 } 236 237 </div> 238 239 </div> 240 @if (!isHomePage) 241 { 242 <div class="col-sm-5 pull-right hidden-sm hidden-xs"> 243 @RenderContactTile(contacts, contactUsPage) 244 </div> 245 } 246 </div> 247 <div class="row"> 248 <div class="col-xs-6 col-md-12"> 249 <div class="footer-social-bar va-middle"> 250 <a href="@this.Model.Area.Item.GetString("Facebook")" class="fa fa-facebook" target="_blank" title="PGW Turf Facebook"></a> 251 <a href="@this.Model.Area.Item.GetString("Instagram")" class="fa fa-instagram" target="_blank" title="PGW Turf Instagram"></a> 252 </div> 253 </div> 254 255 </div> 256 257 </div> 258 </footer> 259 } 260 261 @{ 262 var tagManagerCode = Model.Area.Item.GetString("Google_TagManager_Code"); 263 var siteVerificationKey = Model.Area.Item.GetString("Google_Site_Verification_Key"); 264 } 265 <!DOCTYPE html> 266 <html> 267 <head> 268 @if (tagManagerCode != null) 269 { 270 <script> 271 dataLayer = []; 272 </script> 273 274 <!-- Google Tag Manager --> 275 <script> 276 (function (w, d, s, l, i) { 277 w[l] = w[l] || []; w[l].push({ 278 'gtm.start': 279 new Date().getTime(), event: 'gtm.js' 280 }); var f = d.getElementsByTagName(s)[0], 281 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 282 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 283 })(window, document, 'script', 'dataLayer', '@tagManagerCode'); 284 </script> 285 } 286 <script type="text/javascript"> 287 var sdkInstance = "appInsightsSDK"; window[sdkInstance] = "appInsights"; var aiName = window[sdkInstance], aisdk = window[aiName] || function (e) { function n(e) { t[e] = function () { var n = arguments; t.queue.push(function () { t[e].apply(t, n) }) } } var t = { config: e }; t.initialize = !0; var i = document, a = window; setTimeout(function () { var n = i.createElement("script"); n.src = e.url || "https://az416426.vo.msecnd.net/scripts/b/ai.2.min.js", i.getElementsByTagName("script")[0].parentNode.appendChild(n) }); try { t.cookie = i.cookie } catch (e) { } t.queue = [], t.version = 2; for (var r = ["Event", "PageView", "Exception", "Trace", "DependencyData", "Metric", "PageViewPerformance"]; r.length;)n("track" + r.pop()); n("startTrackPage"), n("stopTrackPage"); var s = "Track" + r[0]; if (n("start" + s), n("stop" + s), n("setAuthenticatedUserContext"), n("clearAuthenticatedUserContext"), n("flush"), !(!0 === e.disableExceptionTracking || e.extensionConfig && e.extensionConfig.ApplicationInsightsAnalytics && !0 === e.extensionConfig.ApplicationInsightsAnalytics.disableExceptionTracking)) { n("_" + (r = "onerror")); var o = a[r]; a[r] = function (e, n, i, a, s) { var c = o && o(e, n, i, a, s); return !0 !== c && t["_" + r]({ message: e, url: n, lineNumber: i, columnNumber: a, error: s }), c }, e.autoExceptionInstrumented = !0 } return t }( 288 { 289 instrumentationKey: '@ConfigurationManager.AppSettings["aiinstrumentationKey"]', 290 disableCorrelationHeaders: false 291 } 292 ); 293 window.appInsights = aisdk; 294 window.appInsights.queue.push(function () { 295 var serverId = "@HttpContext.Current.GetRequestTelemetry().Context.Operation.Id"; 296 appInsights.properties.context.telemetryTrace.traceID = serverId; 297 298 }); 299 aisdk.trackPageView(); 300 </script> 301 <meta charset="utf-8" /> 302 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 303 <meta name="google-site-verification" content="@siteVerificationKey" /> 304 @Model.MetaTags 305 <title>@Model.Title | PGG Wrightson Turf</title> 306 307 <link rel="apple-touch-icon" sizes="57x57" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-57x57.png" /> 308 <link rel="apple-touch-icon" sizes="60x60" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-60x60.png" /> 309 <link rel="apple-touch-icon" sizes="72x72" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-72x72.png" /> 310 <link rel="apple-touch-icon" sizes="76x76" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-76x76.png" /> 311 <link rel="apple-touch-icon" sizes="114x114" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-115x115.png" /> 312 <link rel="apple-touch-icon" sizes="120x120" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-120x120.png" /> 313 <link rel="icon" type="image/png" sizes="32x32" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-32x32.png" /> 314 <link rel="icon" type="image/png" sizes="96x96" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-96x96.png" /> 315 <link rel="icon" type="image/png" sizes="16x16" href="/Files/Templates/Designs/Turf/assets/favicon/PGW-Favicon-16x16.png" /> 316 <link rel="icon" href="/Files/Templates/Designs/Turf/assets/favicon/favicon.ico" /> 317 318 <!-- FontAwesome --> 319 <script src="https://use.fontawesome.com/6326434619.js"></script> 320 321 <!-- TypeKit --> 322 <script src="https://use.typekit.net/vat3ymy.js"></script> 323 <script>try { Typekit.load({ async: false }); } catch (e) { }</script> 324 325 @Styles.Render("~/Content/custom/turf") 326 327 @RenderSnippet("StyleSheet") 328 @RenderSnippet("JavaScript") 329 330 </head> 331 <body> 332 333 @if (tagManagerCode != null) 334 { 335 <!-- Google Tag Manager (no script) --> 336 <noscript> 337 <iframe src="https://www.googletagmanager.com/ns.html?id=@tagManagerCode" 338 height="0" width="0" style="display:none;visibility:hidden"></iframe> 339 </noscript> 340 } 341 342 343 <div class="layout__main wrap"> 344 @{ 345 346 bool isCountryPage = true; 347 int? searchPageId = null; 348 349 var menuStartLevel = 2; 350 var menuEndLevel = 3; 351 string topPageName = ""; 352 int topPageId = 0; 353 354 var topLevelPage = this.Pageview.Page.GetTopLevelParentPage(); 355 356 topPageName = topLevelPage.MenuText; 357 topPageId = topLevelPage.ID; 358 359 var australiaPageUrl = this.Model.Area.Item.GetString("AustraliaPage"); 360 var australiaPageId = australiaPageUrl.GetPageId(); 361 var newZealandPageUrl = this.Model.Area.Item.GetString("NewZealandPage"); 362 var newZealandPageId = newZealandPageUrl.GetPageId(); 363 string customHeaderClass = ""; 364 365 if (topPageId == australiaPageId) 366 { 367 searchPageId = GetPageIdByNavigationTag("AustraliaSearch"); 368 369 } 370 else if (topPageId == newZealandPageId) 371 { 372 searchPageId = GetPageIdByNavigationTag("NewZealandSearch"); 373 } 374 else 375 { 376 isCountryPage = false; 377 menuStartLevel = 1; 378 menuEndLevel = 1; 379 customHeaderClass = "turf-home-header"; 380 } 381 382 string countryPageClass = isCountryPage ? "country-page" : ""; 383 WishlistCookieService wishlistCookieService = new WishlistCookieService(Cookies.GetCookieName(topPageName)); 384 var wishListCount = wishlistCookieService.GetProductCount(); 385 } 386 387 388 <header class="container-fluid @customHeaderClass"> 389 <div class="max-width-wrap col-no-padding-desktop"> 390 <div> 391 @if (isCountryPage) 392 { 393 <nav class="navbar navbar-default navbar-fixed-top visible-sm visible-xs mobile-enquiries-nav"> 394 <div class="container"> 395 <a class="enquiries-items wishlist-link-a" href="Default.aspx?Id=@GetPageIdByNavigationTag(topPageName + " Enquiries")"> 396 <span class="mobile-wishlist-count-circle"></span><span class="mobile-wishlist-count">@wishListCount</span> 397 <h3><span class="fa fa-envelope-o"></span> Enquire Now <span class="fa fa-chevron-right"></span></h3> 398 </a> 399 400 </div> 401 </nav> 402 } 403 404 <nav class="navbar @countryPageClass" role="navigation"> 405 <div class="navbar-header"> 406 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 407 <span class="icon-bar"></span> 408 <span class="icon-bar"></span> 409 <span class="icon-bar"></span> 410 </button> 411 <a href="Default.aspx?Id=@this.Model.Area.FirstPage.ID" id="logo" title="Back to homepage"> 412 <img class="img-responsive" src="/Files/Templates/Designs/Turf/assets/img/turf-logo.png" alt="PGG Wrightson Turf Logo"> 413 </a> 414 </div> 415 416 <div class="navbar-collapse collapse pull-right-md"> 417 <ul class="nav navbar-nav pull-right-md" id="navbar"> 418 @if (isCountryPage) 419 { 420 var activeClass = ""; 421 if (topPageId == this.Pageview.Page.ID) 422 { 423 activeClass = "active current"; 424 } 425 426 <li class="@activeClass"> 427 <a href="Default.aspx?Id=@topPageId"> 428 @topPageName 429 </a> 430 431 </li> 432 } 433 @RenderNavigation(new 434 { 435 Id = "navbar", 436 Template = "navbar.xslt", 437 ExpandMode = "All", 438 StartLevel = menuStartLevel, 439 EndLevel = menuEndLevel 440 }) 441 </ul> 442 443 @if (searchPageId != null) 444 { 445 <div class="search-btn-wrap visible-xs visible-sm"> 446 <a data-target="#search-wrapper" 447 data-toggle="collapse" 448 aria-expanded="false" 449 aria-controls="search-wrapper" 450 role="button"> 451 <span class="fa fa-search hidden-xs hidden-sm"></span> 452 <span class="search-text hidden-md hidden-lg">Search</span> 453 </a> 454 </div> 455 } 456 457 458 </div> 459 </nav> 460 </div> 461 </div> 462 @if (isCountryPage) 463 { 464 465 466 var wishlistHidden = wishListCount == 0 ? "hidden" : string.Empty; 467 <div class="row collapse" id="search-wrapper"> 468 <div class="max-width-wrap"> 469 @if (searchPageId != null) 470 { 471 <div class="form-search-wrap"> 472 <form method="get" action="Default.aspx" name="" novalidate="novalidate"> 473 <input type="hidden" name="ID" value="@searchPageId" /> 474 <input class="navbar-custom-search" type="search" placeholder="Enter Keyword to Search" name="q"> 475 <submit class="animate-right" role="button"> 476 <span class="rounded-icon icon fa fa-angle-right"></span> 477 </submit> 478 </form> 479 </div> 480 } 481 482 <div class="wishlist-notification hidden-xs hidden-sm @wishlistHidden "> 483 <a href="Default.aspx?Id=@GetPageIdByNavigationTag(topPageName + " Enquiries")" class="col-xs-12 wishlist-link-a" title="View Saved Products"> 484 <span class="wishlist-count-circle"></span><span class="wishlist-count">@wishListCount</span> 485 <span class="fa fa-envelope-o fa-fw"></span> 486 Enquire Now 487 <span class="fa fa-chevron-right"></span> 488 </a> 489 </div> 490 491 </div> 492 </div> 493 } 494 </header> 495 496 @inherits Dynamicweb.Rendering.ViewModelTemplate<PageViewModel> 497 @using Dynamicweb.Frontend; 498 @using PgwSeeds.Turf; 499 500 501 @Title("Main page template") 502 503 504 @inherits Dynamicweb.Rendering.ViewModelTemplate<PageViewModel> 505 @using Dynamicweb.Frontend 506 @using PgwSeeds.Common; 507 @{ 508 var bannerList = Model.Item.GetItems("BannerImageList") ?? new List<ItemViewModel>(); 509 int bannerChangeInterval = Model.Item.GetInt32("BannerChangeInterval") != 0 ? Model.Item.GetInt32("BannerChangeInterval") : 5000; 510 } 511 512 <div id="carousel-example-generic" class="carousel slide" data-ride="carousel" data-interval="@bannerChangeInterval"> 513 <div class="carousel-inner" role="listbox"> 514 @{ 515 <!-- Indicators --> 516 if (bannerList.Count() > 1) 517 { 518 <ol class="carousel-indicators"> 519 @for (int i = 0; i < bannerList.Count(); i++) 520 { 521 var activeClass = i == 0 ? "active" : ""; 522 <li data-target="#carousel-example-generic" data-slide-to="@i" class="@activeClass"></li> 523 524 } 525 </ol> 526 } 527 528 bool isFirst = true; 529 foreach (var banner in bannerList) 530 { 531 var desktopImage = banner.GetFile("DesktopImage"); 532 var mobilImage = banner.GetFile("HandsetImage"); 533 var bannerLink = banner.GetString("BannerLink"); 534 var bannerImageAltText = banner.GetString("BannerImageAltText"); 535 536 var strapLineTop = banner.GetString("StraplineTop"); 537 var strapLineBottom = banner.GetString("StraplineBottom"); 538 string straplineBottomColour = !string.IsNullOrEmpty(banner.GetString("StraplineBottomColor")) ? $"color: {banner.GetList("StraplineBottomColor").SelectedValue}" : ""; 539 var active = isFirst ? "active" : ""; 540 isFirst = false; 541 542 <div class="container-fluid banner-wrap item @active"> 543 <div class="banner overflow-img-wrap"> 544 <!-- Banner Image --> 545 <img src="/Files/Templates/Designs/SeedsAU/assets/img/1x1.png" alt="@bannerImageAltText" data-image-desktop="@desktopImage" data-image-handset="@mobilImage" class="img-srcset"> 546 547 <!-- Straplines --> 548 <div class="strapline-wrap"> 549 <div class="max-width-wrap"> 550 <div class="wrap-md-offset-1-leftright"> 551 @if (!string.IsNullOrWhiteSpace(strapLineTop)) 552 { 553 <div class="strapline-inner-wrap"> 554 <h1 class="first-line truncate-text" data-lines-xs="1" data-lines-sm="1" data-lines-md="1" data-lines-lg="1">@strapLineTop</h1> 555 <h2 class="second-line truncate-text" data-lines-xs="1" data-lines-sm="1" data-lines-md="1" data-lines-lg="1" style="@straplineBottomColour; overflow-wrap: break-word;">@strapLineBottom</h2> 556 </div> 557 } 558 559 </div> 560 </div> 561 @if (!string.IsNullOrWhiteSpace(bannerLink)) 562 { 563 var linkUrl = LinkResolver.GetUrl(bannerLink); 564 var linkText = banner.GetString("BannerLinkText"); 565 <div class="strapline-wrap"> 566 <div class="max-width-wrap strapline-custom-inner"> 567 <div class="wrap-md-offset-1-leftright"> 568 <a class="btn btn-default home-cta-link home-banner-link-custom" href="@linkUrl"> @linkText <span class="fa fa-angle-right"></span></a> 569 </div> 570 </div> 571 </div> 572 } 573 </div> 574 </div> 575 </div> 576 } 577 } 578 </div> 579 </div> 580 @{ 581 var title = Model.Item.GetString("Title"); 582 var titleIcon = Model.Item.GetFile("TitleIcon")?.Path; 583 } 584 585 <div class="container"> 586 @if (Model.Item.GetBoolean("DisplayBreadCrumb")) 587 { 588 @RenderNavigation(new 589 { 590 id = "breadcrumbs", 591 template = @".\breadcrumb.xslt", 592 expandmode = "Pathonly" 593 }) 594 } 595 @if (!string.IsNullOrWhiteSpace(title)) 596 { 597 <div class="wrap-md-offset-1-leftright"> 598 <div class="row"> 599 <div class="col-xs-8 col-sm-6 title-component-wrap"> 600 <div class="va-middle"> 601 <h1 class="title">@title</h1> 602 @if (!string.IsNullOrWhiteSpace(Model.Item.GetString("Subtitle"))) 603 { 604 <h2 class="subtitle">@Model.Item.GetString("Subtitle")</h2> 605 } 606 </div> 607 </div> 608 <div class="col-xs-4 col-sm-6"> 609 <div class="product-logo-wrapper text-right-sm"> 610 @if (!string.IsNullOrWhiteSpace(titleIcon)) 611 { 612 <img src="@titleIcon.IconImage()" alt="@Model.Item.GetString("TitleIconAltText")" class="pull-right img-responsive"> 613 } 614 </div> 615 </div> 616 </div> 617 </div> 618 } 619 620 621 @Model.Placeholder("main") 622 623 <div class="hp-text-wrap text-center"> 624 <div class="wrap"> 625 <div class="row"> 626 <div class="col-md-8 center-block clearfix"> 627 <div class="rte"> 628 629 </div> 630 </div> 631 </div> 632 </div> 633 <div class="center-btn-wrap"> 634 635 </div> 636 </div> 637 </div> 638 639 640 641 <!-- SOCIAL SHARING --> 642 <!-- Footer --> 643 644 @RenderFooter() 645 646 <div class="visible-lg-block visible-md-block visible-sm-block visible-xs-block go-to-top hidden"> 647 <div class="triangle"></div> 648 TOP 649 </div> 650 </div> 651 652 <script src="https://code.jquery.com/jquery.min.js"> 653 </script> 654 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script> 655 <!-- Custom handling of unobtrusive validation css classes --> 656 <script src="Files/Templates/Designs/Common/assets/js/validation.custom.js"> 657 </script> 658 659 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js"></script> 660 661 @Scripts.Render("~/bundles/custom/Turf") 662 @RenderSnippet("JavaScriptBottom") 663 </body> 664 </html> 665