Error executing template "Designs/Swift/Paragraph/Custom_Swift_ProductListNavigation.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_f11410dd640a455199633e9aec21741e.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.ParagraphViewModel>
2 @using Dynamicweb.Content
3 @using Dynamicweb.Ecommerce.ProductCatalog
4 @using Dynamicweb.Frontend
5 @using Dynamicweb.Frontend.Navigation
6 @using Dynamicweb.Environment
7 @using Dynamicweb.Core.Encoders
8 @using System
9 @using System.Text.RegularExpressions
10
11 @* CUSTOMIZED STANDARD SWIFT (v1.26.5) TEMPLATE *@
12 @* NOTE: CUSTOMIZED BY STANDARD DW10 ITEM CUSTOMIZATION TOOL *@
13
14 @{
15 ProductListViewModel productList = new ProductListViewModel();
16
17 if (Dynamicweb.Context.Current.Items.Contains("ProductList"))
18 {
19 productList = (ProductListViewModel)Dynamicweb.Context.Current.Items["ProductList"];
20 }
21
22 string contentPadding = Model.Item.GetRawValueString("ContentPadding", "");
23 contentPadding = Model.Item.GetRawValueString("ContentPadding", string.Empty) == "none" ? " px-0 py-2" : contentPadding;
24 contentPadding = Model.Item.GetRawValueString("ContentPadding", string.Empty) == "small" ? " px-3 py-2" : contentPadding;
25 }
26
27 @if (productList.TotalProductsCount > 0)
28 {
29 string groupNavigationLayout = Model.Item.GetRawValueString("GroupNavigationLayout", "collapsible");
30
31 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", string.Empty).Trim().ToLower() : string.Empty;
32
33 int startLevel = Convert.ToInt32(Model.Item.GetRawValueString("GroupNavigationStartLevel", "2"));
34 int stopLevel = Convert.ToInt32(Model.Item.GetRawValueString("GroupNavigationStopLevel", "9"));
35
36 var navigationSettings = new NavigationSettings();
37 navigationSettings.StopLevel = stopLevel;
38 navigationSettings.Parameters.Add("ContentPadding", contentPadding);
39 navigationSettings.StartLevel = startLevel;
40
41 //CUSTOM
42 var enableAlternativeDisplay = Convert.ToBoolean(Model.Item.GetRawValueString("Custom_EnableAlternativeDisplay", "false"));
43 if (enableAlternativeDisplay)
44 {
45 var navigationAlternativeSettings = new NavigationSettings();
46 navigationAlternativeSettings.ExpandMode = ExpandMode.All;
47 navigationAlternativeSettings.StopLevel = stopLevel;
48 navigationAlternativeSettings.StartLevel = startLevel;
49 navigationAlternativeSettings.Parameters.Add("ContentTitle", Translate("Navigation"));
50 navigationAlternativeSettings.Parameters.Add("ContentPadding", contentPadding);
51 navigationAlternativeSettings.Parameters.Add("ContentColumnCountXS", 3);
52 navigationAlternativeSettings.Parameters.Add("ContentColumnCountSM", 3);
53 navigationAlternativeSettings.Parameters.Add("ContentColumnMaxXS", 2);
54 navigationAlternativeSettings.Parameters.Add("ContentColumnMaxSM", 3);
55
56 <div class="d-block d-lg-none@(theme)">
57 @Navigation.RenderNavigation("Navigation/NodesByActiveNode_Custom.cshtml", navigationAlternativeSettings)
58 </div>
59 }
60 //--CUSTOM
61
62 <div class="border-bottom py-2@(theme) @(enableAlternativeDisplay ? "d-none d-lg-block" : "")"> @*//CUSTOM*@
63 @if (groupNavigationLayout == "collapsible")
64 {
65 navigationSettings.ExpandMode = ExpandMode.All;
66 navigationSettings.Parameters.Add("HideTexts", false);
67 navigationSettings.Parameters.Add("HideIcons", true);
68
69 <div class="d-flex@(contentPadding)" data-bs-toggle="collapse" data-bs-target="#ProductGroupNavigation_@Model.ID" role="button" aria-expanded="true" aria-controls="ProductGroupNavigation_@Model.ID">
70 <h2 class="opacity-85 m-0 flex-fill h6">@Translate("Navigation")</h2>
71 <div class="my-auto collapse-chevron-icon"></div>
72 </div>
73 <div class="collapse show" id="ProductGroupNavigation_@Model.ID">
74 @Navigation.RenderNavigation("Navigation/Vertical.cshtml", navigationSettings)
75 </div>
76 }
77
78 @if (groupNavigationLayout == "filter")
79 {
80 navigationSettings.ExpandMode = ExpandMode.Path;
81 @Navigation.RenderNavigation("Navigation/VerticalAndBreadcrumb.cshtml", navigationSettings)
82 }
83 </div>
84 }
85 else
86 {
87 <div class="alert alert-dark m-0" role="alert">
88 @Translate("Navigation: The navigation will be shown here, if any")
89 </div>
90 }
91