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