Error executing template "Designs/Swift-v2/CPQ_PageClean.cshtml"
System.InvalidOperationException: Endpoint authentication '0' was not found.
   at DW_CPQ_API.Helpers.EndpointHelper..ctor(Int32 requestTimeout, LogHelper logger, Int32 authenticationId)
   at DW_CPQ_API.BCHelper.TryResolveDefaultConnectorConnection(EndpointHelper& endpointWriter, String& odataUrlCompany)
   at DW_CPQ_API.ModelController.LoadModelSetting(String ModelVersionId)
   at DW_CPQ_API.ModelController.LoadModelSetting()
   at DW_CPQ_API.CPQConfiguration..ctor(ModelController controller)
   at DW_CPQ_API.ModelController..ctor(String modelVersionId, Nullable`1 pageId, NameValueCollection requestVars, Boolean quickConfigure)
   at DW_CPQ_API.ModelController..ctor(Int32 pageId, NameValueCollection requestVars)
   at CompiledRazorTemplates.Dynamic.RazorEngine_94ef341d52de4652b2c7ba49fabecfd2.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(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 Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> @using System @using Dynamicweb @using Dynamicweb.Environment @using Dynamicweb.Frontend @using Dynamicweb.Frontend.Devices @using Dynamicweb.Rendering @using Dynamicweb.Configuration @{ Pageview.Meta.AddTag("fb:app_id", Model.Area?.Item?.GetString("FacebookAppId")); Pageview.Meta.AddTag("google-site-verification", Model.Area?.Item?.GetString("GoogleSiteVerification")); Pageview.Meta.AddTag("site_name", Model.Area?.Item?.TryGetString("MetaSiteName", out string? siteName) is true ? siteName : Model.Area?.Name); Pageview.Meta.AddTag("url", Pageview.Meta.Canonical?.ToString()); Pageview.Meta.AddTag("twitter:site", Model.Area?.Item?.GetString("TwitterSite")); Pageview.Meta.AddOpenGraphTag("type", "website"); Pageview.Meta.AddOpenGraphTag("url", Pageview.Meta.Canonical?.ToString()); Pageview.Meta.AddOpenGraphTag("title", Model.Title); Pageview.Meta.AddOpenGraphTag("description", Model.Description); if (Model.Area?.Item?.TryGetImageFile("MetaImage", out ImageFileViewModel? image) ?? false) { Pageview.Meta.AddOpenGraphTag("image", image.Path); Pageview.Meta.AddOpenGraphTag("image:alt", Model.Area?.Item?.GetString("MetaImageALT")); } string? googleTagManagerID = string.Empty; if (Model.Area?.Item?.TryGetString("GoogleTagManagerID", out googleTagManagerID) ?? false) { googleTagManagerID = googleTagManagerID.Trim(); } @* Stylesheets *@ AddStylesheet("/Files/Templates/Designs/Swift-v2/Assets/css/swift.css"); @* Color schemes stylesheet *@ @if (Model.TryGetColorSchemeStyle(out string? colorSchemeStyle)) { AddStylesheet(colorSchemeStyle); } @* Button stylesheet *@ @if (Model.TryGetButtonStyle(out string? buttonStyle)) { AddStylesheet(buttonStyle); } @* Typography stylesheet *@ @if (Model.TryGetTypographyStyle(out string? typographyStyle)) { AddStylesheet(typographyStyle); } @* Scripts *@ AddScript("/Files/Templates/Designs/Swift-v2/Assets/lib/bootstrap/dist/js/bootstrap.bundle.min.js"); AddScript("/Files/Templates/Designs/Swift-v2/Assets/lib/htmx.org/dist/htmx.min.js"); AddScript("/Files/Templates/Designs/Swift-v2/Assets/js/swift.js"); @* CPQ *@ string cpqTheme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("CPQ_Theme")) ? Model.Item.GetRawValueString("CPQ_Theme") : "bold"; AddStylesheet("/Files/Templates/Designs/Swift-v2/Assets/css/cpq.css"); AddStylesheet("/Files/Templates/Designs/Swift-v2/Assets/css/cpq-inputs.css"); AddStylesheet($"/Files/Templates/Designs/Swift-v2/Assets/css/{cpqTheme}.css"); AddScript("https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"); @* Summernote CSS/JS *@ AddStylesheet("https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.20/summernote-bs4.min.css"); AddScript("https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.20/summernote-bs4.min.js"); @* Flatpickr CSS/JS *@ AddStylesheet("https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css"); AddScript("https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.js"); AddScript("/Files/Templates/Designs/Swift-v2/Assets/js/cpq-summary.js", true); // summary module AddScript("/Files/Templates/Designs/Swift-v2/Assets/js/cpq-table.js", true); // cpq table module AddScript("/Files/Templates/Designs/Swift-v2/Assets/js/cpq.js", true); // defer to avoid blocking page load const string cpqCustomJsVirtualPath = "/Files/Templates/Designs/Swift-v2/Assets/js/cpq-custom.js"; if (System.IO.File.Exists(Dynamicweb.Core.SystemInformation.MapPath(cpqCustomJsVirtualPath))) { AddScript(cpqCustomJsVirtualPath, true); // defer to avoid blocking page load } string enableFrontendDebuggingRaw = SystemConfiguration.Instance.GetValue("/Globalsettings/CPQ/EnableFrontendDebugging") ?? "False"; bool enableFrontendDebugging = bool.TryParse(enableFrontendDebuggingRaw, out bool enabledFlag) && enabledFlag; if (enableFrontendDebugging) { AddScript("/Files/Templates/Designs/Swift-v2/Assets/js/cpq-debug.js", true); } @* Custom <head> include *@ if (Model.Area?.Item?.TryGetFile("CustomHeadInclude", out FileViewModel? customHeadInclude) ?? false) { @RenderPartial($"Designs/Swift-v2/Custom/{customHeadInclude?.Name}") } } <!doctype html> <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName" data-swift-version="@(ReadFile("/Files/Templates/Designs/Swift-v2/swift_version.txt")?.Trim())"> <head> @* Required meta tags *@ <meta charset="utf-8"> <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0"> @if (Model.Area?.Item?.TryGetImageFile("Favicon", out ImageFileViewModel? faviconImage) ?? false) { <link rel="shortcut icon" href="@faviconImage?.Path"> } @if (Model.Area?.Item?.TryGetImageFile("AppleTouchIcon", out ImageFileViewModel? appleTouchIconImage) ?? false) { <link rel="apple-touch-icon" href="@appleTouchIconImage?.Path"> } @* Pageview Meta *@ <title>@Model.Title</title> @* MetaTags *@ @Model.MetaTags @* Get stylesheets *@ @Model.GetStylesheetsMarkup() @* Media Query Limit *@ @if(Model.Area?.Item?.TryGetString("MediaQueryLimit", out string? mediaQueryLimit) ?? false) { <style> @@media screen and (min-width: @(mediaQueryLimit)px) { [data-swift-container] { --dw-container-limit: @(mediaQueryLimit)px; } [data-swift-container], [data-dw-container-width="3"] { --dw-container-width: calc(var(--dw-container-limit) * .8); } [data-dw-container-width="1"] { --dw-container-width: var(--swift-text-width); } [data-dw-container-width="2"] { --dw-container-width: calc(var(--dw-container-limit) * .65); } } </style> } @* Get scripts *@ @Model.GetScriptsMarkup() @* Google gtag method - always include even if it is not used for anything *@ <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } </script> @* Google tag manager *@ @if (!string.IsNullOrWhiteSpace(googleTagManagerID)) { <script> gtag('consent', 'default', { 'ad_storage': 'denied', 'ad_user_data': 'denied', 'ad_personalization': 'denied', 'analytics_storage': 'denied' }); </script> <script> (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', '@(googleTagManagerID)'); </script> if (AllowTracking()) { <script> gtag('consent', 'update', { 'ad_storage': '@CookieManager.IsCookieOptInGranted("Marketing")', 'ad_user_data': '@CookieManager.IsCookieOptInGranted("Marketing")', 'ad_personalization': '@CookieManager.IsCookieOptInGranted("Marketing")', 'analytics_storage': '@CookieManager.IsCookieOptInGranted("Statistical")' }); </script> } } </head> <body data-dw-page-id="@(Model.ID)" data-dw-itemtype="@Model.Item?.SystemName?.ToLower()"> @* Google tag manager *@ @if (!string.IsNullOrWhiteSpace(googleTagManagerID) && AllowTracking()) { <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=@(googleTagManagerID)" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> } @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> @using DW_CPQ_API @{ string jsonTxt = ""; ModelController modelController = null; if( Model.Item.GetRawValueString("CPQ_ModelVersionId") != null ) { modelController = new ModelController(Pageview.Page.ID, Dynamicweb.Context.Current.Request.Params); Dynamicweb.Context.Current.Items["ModelController"] = modelController; jsonTxt = System.Text.Json.JsonSerializer.Serialize(modelController.DocumentResult); } <input type="hidden" id="model_version_id" value="@(Model.Item.GetRawValueString("CPQ_ModelVersionId"))" /> string cpqCardItemId = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.Form["cpqCardItemId"]) ? Dynamicweb.Context.Current.Request.Form["cpqCardItemId"] : ""; if( string.IsNullOrEmpty(cpqCardItemId) ) cpqCardItemId = Dynamicweb.Context.Current?.Request?.QueryString.Get("cpqCardItemId") ?? ""; <input type="hidden" id="cpqCardItemId" value="@(cpqCardItemId)" /> string quoteNo = Dynamicweb.Context.Current.Request.QueryString.Get("quote") ?? Dynamicweb.Context.Current.Request.Form["CardNumber"] ?? modelController.CardNumber ?? ""; <input type="hidden" id="quote_no" value="@(quoteNo)" /> string paragraphId = Dynamicweb.Context.Current?.Request?.QueryString.Get("ParagraphID") ?? ""; } @if (!string.IsNullOrEmpty(paragraphId)) { @RenderParagraphContent(Convert.ToInt32(paragraphId)) } else { @Model.Grid("Grid", "Grid", "default:true;sort:1", "Page") @* Render classic content, if any *@ @Model.Placeholder("dwcontent", "content", "default:true;sort:1") } @{ string debugmode = Dynamicweb.Context.Current.Request.QueryString.Get("debugmode") ?? ""; bool pageDebugEnabled = bool.TryParse(Dynamicweb.Configuration.SystemConfiguration.Instance.GetValue("/Globalsettings/CPQ/EnableFrontendDebugging") ?? "False", out bool pageDebugEnabledFlag) && pageDebugEnabledFlag; if( pageDebugEnabled && debugmode=="true" ) { <table class="table table-sm table-bordered table-striped" id="debug-table" style="border-color: white;font-size: 13px;"> <tr> <thead> <th style="background-color: #3498db; color:white;" width="50%">Action Code</th> <th style="background-color: #3498db; color:white;" width="50%">Debug Print</th> </thead> </tr> <tr> <td><textarea id="actioncode" class="debugterminal"></textarea> <br> <button onclick="runactioncode()" class="retro-btn">Execute</button> <select id="debugFormInputSelect" class="retro-btn" style="margin-left:8px;" onclick="populateDebugFormInputDropdown()" onchange="cpqDebugAddSelectedFormInput(this)"> <option value="">Select form input</option> </select> <input id="debugVariableName" type="text" placeholder="enter variable name" style="margin-left:8px;" /> <button onclick="cpqDebugAddVariable()" class="retro-btn" style="margin-left:8px;">Add variable</button> </td> <td><pre class="debugterminal" id="jsonViewer"></pre> <button onclick="cleardebug()" class="retro-btn">Clear</button> </td> </tr> </table> } } @if( Model.Item.GetRawValueString("CPQ_ModelVersionId") != null && bool.TryParse(Dynamicweb.Configuration.SystemConfiguration.Instance.GetValue("/Globalsettings/CPQ/EnableFrontendDebugging") ?? "False", out bool pageDebugScriptEnabledFlag) && pageDebugScriptEnabledFlag ) { <script> function runactioncode() { updateModelForm({rundebugaction:true}); } console.log(@Raw(jsonTxt)); </script> } </body> </html> @functions { bool AllowTracking() { bool allowTracking = true; if (CookieManager.IsCookieManagementActive) { var cookieOptInLevel = CookieManager.GetCookieOptInLevel(); var cookieOptInCategories = CookieManager.GetCookieOptInCategories(); bool consentEither = (cookieOptInCategories.Contains("Statistical") || cookieOptInCategories.Contains("Marketing")); bool consentFunctional = cookieOptInLevel == CookieOptInLevel.Functional; bool consentAtLeastOne = cookieOptInLevel == CookieOptInLevel.All || (consentFunctional && consentEither); allowTracking = consentAtLeastOne; } return allowTracking; } }