Component builder for: Product list card

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