Exception in template (Designs/isi/_parsed/espresso.parsed.cshtml): System.IO.FileNotFoundException: Could not find file 'C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\pcto3mo0.dll'.
File name: 'C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\pcto3mo0.dll'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.File.InternalReadAllBytes(String path, Boolean checkHost)
at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames)
at Microsoft.CSharp.CSharpCodeGenerator.FromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromDomBatch(CompilerParameters options, CodeCompileUnit[] ea)
at RazorEngine.Compilation.DirectCompilerServiceBase.Compile(TypeContext context)
at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType(TypeContext context)
at RazorEngine.Templating.TemplateService.CreateTemplateType(String razorTemplate, Type modelType)
at RazorEngine.Templating.TemplateService.GetTemplate[T](String razorTemplate, Object model, String cacheName)
at RazorEngine.Templating.TemplateService.GetTemplate(String razorTemplate, Object model, String cacheName)
at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName)
at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
@inherits Co3.Espresso.Website.TemplateBases.Pages.PageBase @using System.Web @using System.IO @using Dynamicweb.Frontend @using Dynamicweb.Rendering.Designer @using Dynamicweb.Security.UserManagement @{ string globalAreaLang = Pageview.Area.CultureInfo.TwoLetterISOLanguageName; string currencySeparatorDecimal = Pageview.Area.CultureInfo.NumberFormat.CurrencyDecimalSeparator; string currencySeparatorInteger = Pageview.Area.CultureInfo.NumberFormat.CurrencyGroupSeparator; string baseUrl = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ); string openGraphUrl = baseUrl + GetGlobalValue( "Global:Pageview.Url" ); string openGraphImage = baseUrl + Espresso.OpenGraphImage; bool isUserAuthenticated = User.get_Current( PagePermissionLevels.Frontend ) != null; } <!DOCTYPE html> <html lang="@globalAreaLang" data-separator-integer="@currencySeparatorInteger" data-separator-decimal="@currencySeparatorDecimal"> <head> @GetValue( "CopyRightNotice" ) <meta charset="utf-8"> <meta content="width=device-width, initial-scale=1, shrink-to-fit=no, minimal-ui" name="viewport"> <meta content="ie=edge" http-equiv="x-ua-compatible"> <title>@GetValue("Title")</title> @GetValue("MetaTags") @GetValue("CopyRightNotice") @Espresso.CriticalCSS <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin=""> <link href="https://fonts.googleapis.com/css?family=Muli:300,400,800|Material+Icons" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style"> <link href="/Files/Templates/Designs/isi/_assets/_dist/css/default.css?v=3.2" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style"> @Espresso.CriticalJS <link rel="shortcut icon" href="@Espresso.Area.Item.Favicon"> @GetValue( "MetaTags" ) @if ( Espresso.IsStagingUrl == true ) { <meta content="noindex,nofollow" name="robots"> } <meta property="og:url" content="@openGraphUrl"> <meta property="og:title" content="@Espresso.OpenGraphTitle"> <meta property="og:description" content="@Espresso.OpenGraphDescription"> <meta property="og:image" content="@openGraphImage"> <meta content="website" property="og:type"> @if ( string.IsNullOrEmpty( Espresso.Area.Item.GoogleSiteVerification ) == false ) { <meta name="google-site-verification" content="@Espresso.Area.Item.GoogleSiteVerification"> } @{ if ( 1 == 2 ) { @GetValue( "Stylesheets" ) } } <script data-cookieconsent="ignore"> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag("consent", "default", { ad_personalization: "denied", ad_storage: "denied", ad_user_data: "denied", analytics_storage: "denied", functionality_storage: "denied", personalization_storage: "denied", security_storage: "granted", wait_for_update: 500, }); gtag("set", "ads_data_redaction", true); gtag("set", "url_passthrough", false); </script> @if ( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" ) { <!-- Google Tag Manager --> <script data-cookieconsent="ignore"> (function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', '@Espresso.Area.GoogleTagManagerID'); </script> <!-- End Google Tag Manager --> } @GetValue("Stylesheets") @GetValue("Javascripts") </head> <body class="@Espresso.Item.CustomClasses" data-userauthenticated="@isUserAuthenticated.ToString().ToLower()"> @if ( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" ) { <!-- Google Tag Manager (noscript) --> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=@Espresso.Area.GoogleTagManagerID" height="0" width="0" style="display: none; visibility: hidden"></iframe> </noscript> <!-- End Google Tag Manager (noscript) --> } @using Co3.Espresso.Website.Models.FrontEnd @{ Espresso.Canvas.ClassList.AddClasses( "js-e-canvas is-loading" ); if ( Espresso.Item.CanvasFullscreen == "True" ) { Espresso.Canvas.ClassList.AddClasses( "is-fullscreen" ); } } @using System.Globalization @using Co3.Espresso.Base.Extensions @using Co3.Espresso.Website.Models.FrontEnd @using Co3.Espresso.Website.Services @using Dynamicweb.Content @using Dynamicweb.Frontend @using Dynamicweb.Rendering @using EcomContext = Dynamicweb.Ecommerce.Common.Context @functions { public string getCountryCodeFromArea( Area area ) { RegionInfo regionInfo = new RegionInfo( area.CultureInfo.LCID ); return regionInfo.TwoLetterISORegionName; } } @helper ProductDescription( string sectionClasses = "e-section", bool sectionCollapse = false, string contentClasses = null, string heading = null, string content = null ) { if ( string.IsNullOrEmpty( content ) == false ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, sectionCollapse: sectionCollapse, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2>@heading</h2> </div> } <div class="@contentClassList"> @content </div> @sectionEnd() } } @helper ProductVideo( string sectionClasses = "e-section", string contentClasses = null, string heading = null, string videoURL = null ) { if ( string.IsNullOrEmpty( videoURL ) == false ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2>@heading</h2> </div> } <div class="@contentClassList"> <div class="embed-responsive embed-responsive-16by9 mb-2"> <iframe class="embed-responsive-item" src="@videoURL" width="1080" height="608" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe> </div> </div> @sectionEnd() } } @helper ProductRelatedProducts( string sectionClasses = "e-section", string contentClasses = null, string heading = null, IEnumerable< RazorTemplateBase< RazorTemplateModel< Template > >.LoopItem > productLoop = null ) { if ( productLoop != null && productLoop.Any() == true ) { ClassList headingClassList = new ClassList(); headingClassList.AddClasses( "col-12" ); ClassList contentClassList = new ClassList(); contentClassList.AddClasses( "col-12" ); @sectionStart( sectionClasses: sectionClasses, contentClasses: contentClasses ) if ( string.IsNullOrEmpty( heading ) == false ) { <div class="@headingClassList"> <h2 class="text-center">@heading</h2> </div> } <div class="@contentClassList"> <div class="e-products mb-2"> <div class="row"> @{ string productlistItemClassList = ProductlistService.Instance.GetGridItemWidth( null ).ToResponsiveClasses(); } @foreach ( RazorTemplateBase< RazorTemplateModel< Template > >.LoopItem product in productLoop ) { @ProductlistItem( product, productlistItemClassList ) } </div> </div> </div> @sectionEnd() } } @helper ProductlistItem( RazorTemplateBase< RazorTemplateModel< Template > >.LoopItem product, string productlistItemClassList = null ) { if ( product != null ) { dynamic productData = new { id = product.GetString( "Ecom:Product.ID" ), url = ProductService.Instance.GetProductLink( product.GetString( "Ecom:Product.PrimaryOrFirstGroupID" ), product.GetString( "Ecom:Product.ID" ) ), number = product.GetString( "Ecom:Product.Number" ), name = product.GetString( "Ecom:Product.Name" ), imageLarge = ImageService.Instance.GetImageURL( product.GetString( "Ecom:Product.ImageLarge.Clean" ), 240, 240, 5 ), price = ProductService.Instance.GetPriceFormatted( product.GetDouble( "Ecom:Product.Price.Price" ) ), descriptionShortExtra01 = product.GetString( "Ecom:Product:Field.DescriptionShortExtra01" ), stock = new { id = product.GetString( "Ecom:Product:Stock.ID" ), quantity = product.GetString( "Ecom:Product.Stock" ), text = product.GetString( "Ecom:Product:Stock.Text" ), delivery = product.GetString( "Ecom:Product:Stock.DeliveryText" ) } }; <div class="@productlistItemClassList"> <div class="border-0 e-products-item js-e-products-item"> <div class="e-products-item-container"> <div class="e-products-item-image-container"> <a class="e-products-item-image-wrapper" href="@productData.url"> <img src="@productData.imageLarge" alt="" class="e-products-item-image"> </a> </div> <div class="e-products-item-text-container text-center"> <h3 class="e-products-item-name mb-0"> <a href="@productData.url"> @productData.name </a> </h3> @if ( string.IsNullOrEmpty( productData.descriptionShortExtra01 ) == false ) { <p class="e-products-item-text mb-0"> <a href="@productData.url"> @productData.descriptionShortExtra01 </a> </p> } <p class="e-products-item-text mb-0"> <small class="e-products-item-price small text-muted"> <a href="@productData.url"> @productData.price </a> </small> </p> </div> </div> </div> </div> } } @helper sectionStart( string sectionClasses = "e-section", string contentClasses = null, bool sectionCollapse = false ) { ClassList sectionClassList = new ClassList(); sectionClassList.AddClasses( sectionClasses ); ClassList contentClassList; string collapseId = Guid.NewGuid().ToString( "N" ); ClassList collapseToggleClassList = new ClassList(); string collapseToggleTextExpand = "Se mere"; string collapseToggleTextCollapse = "Se mindre"; if ( contentClasses == null ) { contentClassList = Co3.Espresso.Website.Services.PageService.Instance.GetResponsiveClassesFromPageItem( PageView.Current().Page.Item ); } else { contentClassList = new ClassList(); contentClassList.AddClasses( contentClasses ); } if ( sectionCollapse == true ) { sectionClassList.AddClasses( "p-section-collapse js-p-section-collapse" ); collapseToggleClassList.AddClasses( contentClasses ); collapseToggleClassList.AddClasses( "p-section-collapse-toggle collapsed order-last text-center" ); contentClassList.AddClasses( "p-section-collapse-content collapse is-md" ); } @:<section class="@sectionClassList"> @:<div class="container-fluid"> @:<div class="row"> if ( sectionCollapse == true ) // TODO: SplitPattern into seperate heler function { <div class="@collapseToggleClassList" data-toggle="collapse" data-target="#@collapseId"> <button class="btn btn-primary p-section-collapse-toggle-btn" type="button"> <i class="material-icons p-section-collapse-toggle-icon">keyboard_arrow_down</i> </button> <small class="h4 p-section-collapse-toggle-text" data-expand-text="@collapseToggleTextExpand" data-collapse-text="@collapseToggleTextCollapse"></small> </div> } @:<div class="@contentClassList" id="@collapseId"> @:<div class="row"> } @helper sectionEnd() { @:</div> @:</div> @:</div> @:</div> @:</section> } <div class="e-loading-overlay e-page-loading-overlay is-loading js-e-page-loading-overlay"> <div class="e-loading-spinner"></div> </div> @{ ClassList headerClassList = new ClassList(); headerClassList.AddClasses( "e-header js-e-header is-sticky" ); if ( Espresso.Item.HeaderTransparent == "True" ) { headerClassList.AddClasses( "is-transparent" ); } ClassList logoClassList = new ClassList(); logoClassList.AddClasses( "e-logo" ); string backButtonLink = Espresso.Item.BackButtonLink; ClassList backButtonClassList = new ClassList(); ClassList backButtonIconClassList = new ClassList(); if ( Espresso.Item.BackButton == "True" ) { backButtonClassList.AddClasses( "btn btn-sm btn-secondary my-1 align-self-center" ); if ( backButtonLink == "" || backButtonLink == "/" ) { backButtonLink = "/"; backButtonClassList.AddClasses( "js-e-back-link" ); } backButtonIconClassList.AddClasses( "material-icons material-icons-large" ); if ( Espresso.Item.BackButtonPosition == "right" ) { backButtonClassList.AddClasses( "mr-0 ml-auto order-last" ); logoClassList.AddClasses( "order-first" ); } else { backButtonClassList.AddClasses( "order-first" ); logoClassList.AddClasses( "mr-0 ml-auto order-last" ); } if ( Espresso.Item.BackButtonIcon == "arrow_back" ) { backButtonClassList.AddClasses( "arrow-left" ); backButtonIconClassList.AddClasses( "d-none" ); } else if ( Espresso.Item.BackButtonIcon == "arrow_forward" ) { backButtonClassList.AddClasses( "arrow-right" ); backButtonIconClassList.AddClasses( "d-none" ); } } string logoPrimary = Espresso.Area.Item.LogoPrimary; string logoSecondary = Espresso.Area.Item.LogoSecondary; if ( string.IsNullOrEmpty( logoSecondary ) == true ) { logoSecondary = logoPrimary; } string tagline = Espresso.Area.Item.Tagline; Dictionary< string, string > navigationHtml = new Dictionary< string, string > { { "global", RenderNavigation( new { id = "dwnav-global", template = "global.xslt", startlevel = 1, endlevel = 8, expandmode = "all" } ) }, { "utilities-primary", RenderNavigation( new { id = "dwnav-utilities-primary", template = "utilities.xslt", startlevel = 4, endlevel = 5, expandmode = "all", parenttag = "utilities-primary" } ) }, { "utilities-secondary", RenderNavigation( new { id = "dwnav-utilities-secondary", template = "utilities.xslt", startlevel = 4, endlevel = 4, expandmode = "all", parenttag = "utilities-secondary" } ) }, { "hamburger-header", RenderNavigation( new { id = "dwnav-hamburger-header", template = "utilities.xslt", startlevel = 4, endlevel = 4, expandmode = "all", parenttag = "hamburger-header" } ) }, { "hamburger-aside", RenderNavigation( new { id = "dwnav-hamburger-aside", template = "utilities.xslt", startlevel = 4, endlevel = 4, expandmode = "all", parenttag = "hamburger-aside" } ) } }; } @if ( Espresso.Item.HeaderHide != "True" ) { <header class="@headerClassList" data-autohide="true"> <div class="e-header-hamburger"> @sectionStart( "e-header-section e-section", "col-12" ) <div class="col-12 e-header-section-content"> <div class="@logoClassList"> <a class="e-logo-link" href="/"> <img src="@logoPrimary" class="e-logo-img e-logo-img-primary" alt="@Espresso.Area.Item.CompanyName"> <img src="@logoSecondary" class="e-logo-img e-logo-img-secondary" alt="@Espresso.Area.Item.CompanyName"> @if ( string.IsNullOrEmpty( tagline ) == false ) { <p class="e-logo-tagline">@tagline</p> } </a> </div> @if ( Espresso.Item.NavigationHide != "True" ) { <section class="e-nav-hamburger-header"> <ul class="nav"> @navigationHtml[ "hamburger-header" ] @* TODO: Move to xslt *@ <li class="e-nav-item-hamburger-open nav-item"> <a class="nav-link" data-target=".modal.e-nav" data-toggle="modal" href="#"> <i class="e-nav-pageicon material-icons">menu</i> <span class="e-nav-pagename">@Translate( "Header - Hamburger menu open - Button", "Menu" )</span> </a> </li> </ul> </section> } @if ( Espresso.Item.BackButton == "True" ) { <a class="@backButtonClassList" href="@backButtonLink"> @if ( Espresso.Item.BackButtonIcon != "" ) { <i class="@backButtonIconClassList">@Espresso.Item.BackButtonIcon</i> } @Espresso.Item.BackButtonText </a> } </div> @sectionEnd() </div> <div class="e-nav js-e-nav modal p-0" data-backdrop="false"> <div class="e-nav-container navbar"> @sectionStart( "e-header-section e-header-section-primary e-section", "col-12" ) <div class="col-12 e-header-section-content"> <div class="@logoClassList"> <a class="e-logo-link" href="/"> <img src="@logoPrimary" class="e-logo-img e-logo-img-primary" alt="@Espresso.Area.Item.CompanyName"> <img src="@logoSecondary" class="e-logo-img e-logo-img-secondary" alt="@Espresso.Area.Item.CompanyName"> @if ( string.IsNullOrEmpty( tagline ) == false ) { <p class="e-logo-tagline">@tagline</p> } </a> </div> @if ( Espresso.Item.NavigationHide != "True" ) { <nav class="e-nav-global js-e-nav-global"> <ul class="nav"> @navigationHtml[ "global" ] </ul> </nav> <div class="e-nav-item-hamburger-close"> <a class="nav-link" data-target=".modal.e-nav" data-toggle="modal" href="#"> <i class="e-nav-pageicon material-icons">close</i> <span class="e-nav-pagename">@Translate( "Header - Hamburger menu close - Button", "Close" )</span> </a> </div> if ( string.IsNullOrEmpty( navigationHtml[ "utilities-primary" ] ) == false ) { @:</div> @sectionEnd() @sectionStart( "e-header-section e-header-section-secondary e-section", "col-12" ) @:<div class="col-12 e-header-section-content"> <nav class="e-nav-utilities-primary js-e-nav-utilities-primary"> <ul class="nav"> @navigationHtml[ "utilities-primary" ] </ul> </nav> } if ( string.IsNullOrEmpty( navigationHtml[ "utilities-secondary" ] ) == false ) { <nav class="e-nav-utilities-secondary"> <ul class="nav"> @navigationHtml[ "utilities-secondary" ] </ul> </nav> } if ( string.IsNullOrEmpty( navigationHtml[ "hamburger-aside" ] ) == false ) { <nav class="e-nav-hamburger-aside"> <ul class="nav"> @navigationHtml[ "hamburger-aside" ] </ul> </nav> } } @if ( Espresso.Item.BackButton == "True" ) { <a class="@backButtonClassList" href="@backButtonLink"> @if ( Espresso.Item.BackButtonIcon != "" ) { <i class="@backButtonIconClassList">@Espresso.Item.BackButtonIcon</i> } @Espresso.Item.BackButtonText </a> } </div> @sectionEnd() </div> </div> </header> } <div class="@Espresso.Canvas.ClassList"> @using Dynamicweb.Security.UserManagement @{ User currentUser = User.get_Current( PagePermissionLevels.Frontend ); if ( currentUser != null ) { User currentSecondaryUser = currentUser.CurrentSecondaryUser; if ( currentSecondaryUser != null ) { @sectionStart( "e-section bg-warning js-e-section is-sticky py-1", "col-12 small" ) <div class="align-self-center col-12 col-lg-9 col-md-8"> <p class="line-height-sm mb-0 text-center text-md-left"> <i class="material-icons material-icons-2x">supervisor_account</i> @Translate( "Extranet Impersonation - Active impersonation message - Text", "You are currently impersonating this user:" ) <strong>@currentUser.Name &mdash; @currentUser.Company </strong> </p> </div> <div class="align-self-center col-12 col-lg-3 col-md-4"> <form class="mb-0 small text-center text-md-right" method="post" action="@Espresso.Area.Item.ExtranetImpersonationPage"> <button class="btn btn-primary" name="DwExtranetRemoveSecondaryUser" type="submit">@Translate( "Extranet Impersonation - Stop impersonation - Button", "Stop impersonation" )</button> </form> </div> @sectionEnd() } } } <main class="e-content"> @using Dynamicweb.Content; @using Dynamicweb.Extensibility; @{ string eBreadcrumbClasslist = "e-breadcrumb js-e-breadcrumb d-none d-lg-block"; if ( Espresso.Item.Breadcrumb != "auto" && Espresso.Item.Breadcrumb != "none" && String.IsNullOrEmpty( Espresso.Item.Breadcrumb ) == false ) { eBreadcrumbClasslist += string.Format( " e-breadcrumb-{0}", Espresso.Item.Breadcrumb ); } string navigationHtmlBreadcrumb = RenderNavigation( new { id = "dwnav-breadcrumb", template = "breadcrumb.xslt", startlevel = 1, endlevel = 10, expandmode = "pathonly", sitemapmode = true } ); } @if ( string.IsNullOrEmpty( navigationHtmlBreadcrumb ) == false && Espresso.Item.Breadcrumb != "none" && string.IsNullOrEmpty( Espresso.Item.Breadcrumb ) == false ) { <section class="e-section @eBreadcrumbClasslist"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="row"> <div class="col-12"> <nav class="e-breadcrumb-container"> <ol class="breadcrumb nav text-muted"> <li class="breadcrumb-item m-0 p-0"> <a class="arrow-left breadcrumb-back-link js-e-back-link px-0" href="/">@Translate( "Breadcrumb - Back link", "Back" )</a> <span class="breadcrumb-prefix-text"> @Translate( "Breadcrumb - Prefix - Text", "You are here:" ) </span> <a href="/"> @ServiceLocator.Current.GetPageService().GetFirstPageForArea( GetInteger( "DwAreaID" ) ).MenuText </a> </li> @navigationHtmlBreadcrumb </ol> </nav> </div> </div> </div> </div> </div> </section> } <article id="dwcontentmain" class="e-content-main @Espresso.ContentArea.ClassList"> @{ string NavigationLocalHorizontalClassList = "e-nav-local e-nav-local-horizontal js-e-nav-local-horizontal"; string NavigationLocalHorizontalContainerClassList = "e-nav-local-container"; string NavigationLocalHorizontalTemplate = "local-" + Espresso.Item.NavigationLocalLayout + ".xslt"; if ( string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false && Path.GetExtension( Espresso.Item.NavigationLocalTemplate ) == ".xslt" ) { NavigationLocalHorizontalTemplate = Path.GetFileName( Espresso.Item.NavigationLocalTemplate ); } if ( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) { NavigationLocalHorizontalClassList += " " + Espresso.Item.NavigationLocalCustomClasses; if ( Espresso.Item.NavigationLocalSticky == "True" ) { NavigationLocalHorizontalClassList += " is-sticky"; } if ( Espresso.Item.NavigationLocalAbsolute == "True" ) { NavigationLocalHorizontalClassList += " is-absolute"; } else { if ( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) { NavigationLocalHorizontalClassList += " mt-" + Espresso.Item.NavigationLocalMarginTop; } if ( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) { NavigationLocalHorizontalClassList += " mb-" + Espresso.Item.NavigationLocalMarginBottom; } } } } @if ( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) { <section class="e-section @NavigationLocalHorizontalClassList"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="row"> <div class="col-12"> <nav id="dwnav-local-horizontal-@Espresso.DynamicwebPage.ID" class="@NavigationLocalHorizontalContainerClassList"> <ul class="justify-content-start nav"> @if ( Espresso.Item.NavigationLocalHeading != "" ) { <li class="e-nav-local-heading"> <h2>@Espresso.Item.NavigationLocalHeading</h2> </li> } @RenderNavigation( new { id = "dwnav-local-horizontal-" + Espresso.DynamicwebPage.ID, parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID, template = NavigationLocalHorizontalTemplate, startlevel = Espresso.Item.NavigationLocalLevelStart, endlevel = Espresso.Item.NavigationLocalLevelEnd, expandmode = Espresso.Item.NavigationLocalPageTreeExpand == "True" ? "all" : "path" } ) </ul> </nav> </div> </div> </div> </div> </div> </section> } @{ string NavigationLocalVerticalClassList = "e-nav-local e-nav-local-vertical js-e-nav-local-vertical"; string NavigationLocalVerticalContainerClassList = "e-nav-local-container"; string NavigationLocalVerticalTemplate = "local-" + Espresso.Item.NavigationLocalLayout + ".xslt"; if ( string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false && Path.GetExtension( Espresso.Item.NavigationLocalTemplate ) == ".xslt" ) { NavigationLocalVerticalTemplate = Path.GetFileName( Espresso.Item.NavigationLocalTemplate ); } if ( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) { NavigationLocalVerticalClassList += " " + Espresso.Item.NavigationLocalCustomClasses; if ( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) { NavigationLocalVerticalClassList += " mt-" + Espresso.Item.NavigationLocalMarginTop; } if ( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) { NavigationLocalVerticalClassList += " mb-" + Espresso.Item.NavigationLocalMarginBottom; } if ( Espresso.Item.NavigationLocalSticky == "True" ) { NavigationLocalVerticalClassList += " is-sticky"; } if ( Espresso.Item.NavigationLocalAbsolute == "True" ) { NavigationLocalVerticalClassList += " is-absolute"; } else { Espresso.ContentSection.ClassList.Clear(); Espresso.ContentSection.ClassList.AddClasses( "wtf col-12 col-lg-9 ml-auto" ); } } } @if ( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) { <section class="e-section @NavigationLocalVerticalClassList"> <div class="container-fluid"> <div class="row"> <div class="col-12"> <div class="row"> <div class="col-3"> <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalVerticalContainerClassList"> <ul class="flex-column nav"> @if ( Espresso.Item.NavigationLocalHeading != "" ) { <li class="e-nav-local-heading"> <h2>@Espresso.Item.NavigationLocalHeading</h2> </li> } @RenderNavigation( new { id = "dwnav-local-" + Espresso.DynamicwebPage.ID, parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID, template = NavigationLocalVerticalTemplate, startlevel = Espresso.Item.NavigationLocalLevelStart, endlevel = Espresso.Item.NavigationLocalLevelEnd, expandmode = Espresso.Item.NavigationLocalPageTreeExpand == "True" ? "all" : "path", } ) </ul> </nav> </div> </div> </div> </div> </div> </section> } @sectionStart() @GetValue("DwContent(dwcontentmain)") @sectionEnd() </article> </main> </div> @{ string FooterContentClassList = "e-footer-content e-section"; } @if ( Espresso.Item.FooterHide != "True" ) { <footer class="e-footer"> <article class="e-footer-wrapper"> <section class="@FooterContentClassList"> <div class="container-fluid"> <div class="row"> @if ( !string.IsNullOrEmpty( Espresso.Area.Item.FooterPageId ) ) { @RenderPageContent( int.Parse( Espresso.Area.Item.FooterPageId ) ) } @if ( string.IsNullOrEmpty( GetString( "DwNavigation(dwnavutilitiessecondaryfooter)" ) ) == false ) { <div class="col-12"> <aside class="e-nav-utilities-secondary"> <ul class="nav nav-inline"> @GetValue("DwNavigation(dwnavutilitiessecondaryfooter)") </ul> </aside> </div> } </div> </div> </section> <section class="e-footer-copyright e-section"> <div class="container-fluid"> <div class="align-items-center row"> <div class="col-12 text-right"> <p class="e-copyright"> @Translate( "Footer - Copyright - Text", "Copyright &copy;" ) @DateTime.Now.Year.ToString() @Espresso.Area.Item.CompanyName. @Translate( "Footer - All Rights Reserved - Text", "All rights reserved." ) <span class="m-1 text-muted"><a href="https://www.co3.dk/" target="_blank" class="text-info">Website: Co3</a></span> </p> </div> </div> </div> </section> </article> </footer> } @if( string.IsNullOrEmpty( GetString("DwContent(dwcontentcta)") ) == false ) { <aside id="dwcontentcta" class="js-e-cta e-cta is-hidden fixed-top"> <section class="e-section"> <div class="container-fluid"> <div class="row no-gutters"> <div class="col-12"> <div class="row no-gutters justify-content-center align-items-center"> @GetValue("DwContent(dwcontentcta)") @* <p><a class="d-flex align-items-center justify-content-center justify-content-lg-left text-black text-decoration-none small" href="/bliv-ringet-op"><i class="material-icons material-icons-large text-primary mr-1">phone</i>Bliv ringet op</a></p> *@ </div> </div> </div> </div> </section> </aside> } <div class="e-cart-msg modal fade small" id="js-e-cart-msg" data-backdrop="false"> <div class="modal-dialog e-cart-msg-modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="js-e-cart-msg-heading modal-title"> <i class="material-icons material-icons-large text-success">check_circle</i> <span>@Translate( "eCom Cart - Product Added - Heading", "Added to your cart" )</span> </h4> <button class="close" data-dismiss="modal" type="button"> <i class="material-icons">close</i> </button> </div> <div class="modal-body"> <div class="js-e-cart-msg-content"> <script id="js-e-handlebars-tmpl-cart-msg-lastadded" type="text/x-handlebars-template"> <div class="row"> {{#each cart.lastAdded}} <div class="col-12 py-1"> <div class="row"> <div class="col-4"> <a class="" href="{{url}}"> <img alt="" class="img-fluid" src="{{imageLarge}}"> </a> </div> <div class="col-8"> <h3 class="mb-0"> <a href="{{url}}" class="text-decoration-none">{{name}}</a> </h3> <p class="mb-0"> <a href="{{url}}" class="text-auto text-decoration-none"> {{{price}}}<br> {{{stock.text}}}<br> {{{stock.delivery}}}<br> </a> </p> </div> </div> </div> {{/each}} </div> </script> </div> </div> <div class="bg-info e-cart-msg-footer modal-footer border-top-0"> <a class="btn btn-secondary mr-1" href="/shop/cart" data-dismiss="modal">Shop videre</a> <a class="arrow-right btn btn-primary" href="/shop/cart">Gå til kurv</a> </div> </div> </div> </div> @using Co3.Espresso.Base.Extensions @using Co3.Espresso.Website.Services <div class="modal fade e-search js-e-search js-e-search-modal modal-fullscreen" data-backdrop="false" data-keyboard="true" data-focus="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <a class="isi-link-arrow arrow-flipped js-e-back-link" href="/" data-dismiss="modal"> <img class="svg" src="/Files/Templates/Designs/isi/_assets/img/cta-arrow.svg"> @Translate( "Search - Back button", "Back" ) </a> <div class="e-logo"> <a href="/" class="e-logo-link my-0"> <img src="@logoPrimary" class="e-logo-img e-logo-img-primary" alt="@Espresso.Area.Item.CompanyName"> <img src="@logoSecondary" class="e-logo-img e-logo-img-secondary" alt="@Espresso.Area.Item.CompanyName"> </a> </div> </div> <div class="modal-body"> <div class="container-fluid"> <div class="e-search-form-container"> <div class="row justify-content-center"> <div class="col-12 col-md-10 col-lg-8 col-xl-6 mt-3"> <form action="" class="e-search-form js-e-search-form"> <div class="js-e-search-input-group e-search-input-group is-empty"> <label class="e-search-label" for="e-search-input"><i class="material-icons">search</i></label> @{ string Translate_Search_InputText = Translate("Search - Input Placeholder - Text", "Search"); } <input type="text" class="js-e-search-input e-search-input form-control-plaintext border-0" name="q" id="e-search-input" placeholder="@Translate_Search_InputText"> <span class="js-e-search-clear e-search-clear"><i class="material-icons">close</i></span> <button class="e-search-submit btn btn-primary" type="submit"><i class="material-icons">search</i></button> </div> </form> </div> </div> </div> <div class="js-e-search-result-container e-search-result-container"> <div class="row justify-content-center"> <div class="col-12 col-md-10 col-lg-8 col-xl-6"> <p class="e-search-result-info small text-muted mt-1 mb-3"><span class="js-e-search-result-count">0</span> @Translate("Search - Result Count - Text", "results")</p> </div> </div> <div class="row justify-content-center"> <div class="col-12 col-xl-10"> <div class="js-e-search-result-products e-search-result-products is-empty mb-4"> @{string productlistItemClassList = ProductlistService.Instance.GetGridItemWidth( null ).ToResponsiveClasses();} <script id="js-e-handlebars-tmpl-search-result-item-product" type="text/x-handlebars-template"> <div class="e-products"> <div class="row justify-content-center"> {{#loop products}} <div class="@productlistItemClassList"> <div class="e-products-item"> <div class="e-products-item-container"> <div class="e-products-item-image-container"> <a class="e-products-item-image-wrapper" href="{{url}}"> <img src="{{imageLarge}}" alt="" class="e-products-item-image"> </a> </div> <div class="e-products-item-text-container text-center small"> <h3 class="e-products-item-name mb-0"><a href="{{url}}">{{name}}</a></h3> {{#if descriptionShortExtra01}} <p class="e-products-item-text mb-0 small"> <a href="{{url}}"> {{descriptionShortExtra01}} </a> </p> {{/if}} <p class="e-products-item-text mb-0 small"> <span class="e-products-item-price"> <a href="{{url}}"> {{{price}}} </a> </span> </p> </div> </div> </div> </div> {{/loop}} </div> <p class="js-e-search-products-show-all text-center"><a href="" class="btn btn-secondary px-6">@Translate( "Search - View All Products - Button", "View All Products" )</a></p> </div> </script> </div> </div> </div> <div class="row justify-content-center"> <div class="col-12 col-md-10 col-lg-8 col-xl-6"> <div class="js-e-search-result-pages e-search-result-pages is-empty mb-3"> <script id="js-e-handlebars-tmpl-search-result-item-page" type="text/x-handlebars-template"> <div class="row"> {{#loop pages}} <div class="col-12"> <p class="mb-0"><a href="{{{url}}}" class="text-bold">{{{title}}}</a></p> <p class="mb-0 small text-truncate"> <a href="{{{url}}}" class="text-auto text-muted text-decoration-none"><span class="d-none d-sm-inline">@GetGlobalValue( "Global:Request.Host" )</span>{{{url}}}</a></p> <p class="small">{{{text}}}...</p> </div> {{/loop}} </div> </script> </div> </div> </div> <div class="js-e-search-loading-overlay e-loading-overlay e-search-loading-overlay"> <div class="e-loading-spinner"></div> </div> </div> </div> </div> </div> </div> </div> @if( Espresso.Area.Item.BackToTopLink == "True" ){ <a href="#top" class="e-back-to-top js-e-back-to-top"><i class="material-icons">keyboard_arrow_up</i></a> } @using Co3.Espresso.Website.Services @using Dynamicweb.Frontend @using Page = Dynamicweb.Content.Page @using PageService = Dynamicweb.Content.PageService @{string ParentPageID = GetGlobalValue( "Global:Page.Top.ID" );string topPathEfterskole = GetString("Item.Area.TopPage_1.Value");string topPathHojskole = GetString("Item.Area.TopPage_2.Value");string topPathFriskole = GetString("Item.Area.TopPage_3.Value");string topPathSommerkursus = GetString("Item.Area.TopPage_4.Value");string Link = string.Empty;string LinkText = string.Empty;string LinkIcon = string.Empty;string Link_2 = string.Empty;string LinkText_2 = string.Empty;string LinkIcon_2 = string.Empty;if ( ParentPageID == topPathEfterskole ){Link = GetString( "Item.Area.Link_1.Value" );LinkText = GetString( "Item.Area.LinkText_1.Value" );LinkIcon = GetString( "Item.Area.LinkIcon_1" );Link_2 = GetString( "Item.Area.Link_2.Value" );LinkText_2 = GetString( "Item.Area.LinkText_2.Value" );LinkIcon_2 = GetString( "Item.Area.LinkIcon_2" );}if( ParentPageID == topPathHojskole ) {Link = @GetString("Item.Area.Link_3.Value");LinkText = @GetString("Item.Area.LinkText_3.Value");LinkIcon = @GetString("Item.Area.LinkIcon_3");Link_2 = @GetString("Item.Area.Link_4.Value");LinkText_2 = @GetString("Item.Area.LinkText_4.Value");LinkIcon_2 = @GetString("Item.Area.LinkIcon_4");}if( ParentPageID == topPathFriskole ) {Link = @GetString("Item.Area.Link_5.Value");LinkText = @GetString("Item.Area.LinkText_5.Value");LinkIcon = @GetString("Item.Area.LinkIcon_5");Link_2 = @GetString("Item.Area.Link_6.Value");LinkText_2 = @GetString("Item.Area.LinkText_6.Value");LinkIcon_2 = @GetString("Item.Area.LinkIcon_6");}if( ParentPageID == topPathSommerkursus ) {Link = @GetString("Item.Area.Link_7.Value");LinkText = @GetString("Item.Area.LinkText_7.Value");LinkIcon = @GetString("Item.Area.LinkIcon_7");Link_2 = @GetString("Item.Area.Link_8.Value");LinkText_2 = @GetString("Item.Area.LinkText_8.Value");LinkIcon_2 = @GetString("Item.Area.LinkIcon_8");} }@if( @ParentPageID == @topPathEfterskole || @ParentPageID == @topPathHojskole || @ParentPageID == @topPathFriskole || @ParentPageID == @topPathSommerkursus ) {<div class="isi-sticky-cta hidden-phone">@if (Link != "") {<a href="@Link" target="_blank" class=""><img src="@LinkIcon" class="isi-megamenu-icon svg">@LinkText</a>}@if (Link_2 != "") {<a href="@Link_2" target="_blank" class=""><img src="@LinkIcon_2" class="isi-megamenu-icon svg">@LinkText_2</a>}</div> }<script data-cookieconsent="ignore" async="" src="/Files/Templates/Designs/isi/_assets/_dist/js/default.js?v=1.2"></script> </body> @GetValue( "CopyRightNotice" ) </html>