Error executing template "Designs/Swift/Paragraph/Swift_ProductListGroupPoster.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_b8b5d392fa84428280c3cf6c10c5d4c8.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.Frontend.Navigation 3 @using Dynamicweb.Ecommerce.ProductCatalog 4 @using Dynamicweb.Environment 5 @using Dynamicweb.Frontend 6 7 @{ 8 ProductListViewModel productList = null; 9 if (Dynamicweb.Context.Current.Items.Contains("ProductList") && Dynamicweb.Context.Current.Items["ProductList"] != null) { 10 productList = (ProductListViewModel)Dynamicweb.Context.Current.Items["ProductList"]; 11 } else if (Pageview.Page.Item["DummyProductGroup"] != null && Pageview.IsVisualEditorMode) { 12 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 13 ProductListViewModel groupList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 14 15 if (groupList?.Products is object) { 16 productList = groupList; 17 } 18 } 19 } 20 21 @if (productList != null && productList is object && !Pageview.IsVisualEditorMode) { 22 string layout = Model.Item.GetRawValueString("Layout", "align-middle-center-text-center"); 23 string alignment = ""; 24 25 string searchParameter = Dynamicweb.Context.Current.Request.GetString("q"); 26 27 bool hideTitle = Model.Item.GetBoolean("HideGroupTitle"); 28 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "display-4"); 29 30 string groupName = productList?.Group?.Name != null ? productList.Group.Name : ""; 31 string headerName = searchParameter != "" ? Translate("Search results for") + ": " + searchParameter : groupName; 32 33 bool hideDescription = Model.Item.GetBoolean("HideGroupDescription"); 34 string groupDescription = productList?.Group?.Description != null ? productList.Group.Description : ""; 35 string descriptionFontSize = Model.Item.GetRawValueString("DescriptionFontSize", "fs-6"); 36 37 @* ORIGINAL *@ 38 @* string groupImage = productList?.Group?.Assets != null && productList.Group.Assets.FirstOrDefault(x => x.Name == "LargeImage") != null ? productList.Group.Assets.FirstOrDefault(x => x.Name == "LargeImage").Value : ""; 39 if (groupImage.StartsWith("/") && !groupImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase)) { 40 groupImage = $"/Files{groupImage}"; 41 } *@ 42 43 @* --------------------------------------------------------------------------------------------------------------------- *@ 44 @* CUSTOM *@ 45 @* --------------------------------------------------------------------------------------------------------------------- *@ 46 47 string groupImage = ""; 48 49 // Først prøver vi at hente billedet fra GroupFields 50 if (productList?.Group?.GroupFields != null) { 51 var bannerField = productList.Group.GroupFields 52 .FirstOrDefault(x => x.SystemName == "ProductGroupBannerImage"); 53 54 if (bannerField?.Value != null) { 55 groupImage = bannerField.Value.ToString(); 56 } 57 } 58 59 // Fallback: Hvis intet billede fra GroupFields, så brug det gamle LargeImage 60 if (string.IsNullOrWhiteSpace(groupImage) && productList.Group.Assets != null) { 61 var largeImage = productList.Group.Assets 62 .FirstOrDefault(x => x.Name == "LargeImage"); 63 64 if (largeImage != null) { 65 groupImage = largeImage.Value; 66 } 67 } 68 69 // Tilføj /Files hvis nødvendigt 70 if (groupImage.StartsWith("/") && 71 !groupImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase) && 72 !groupImage.StartsWith("http", StringComparison.OrdinalIgnoreCase)) { 73 groupImage = $"/Files{groupImage}"; 74 } 75 76 @* --------------------------------------------------------------------------------------------------------------------- *@ 77 @* /CUSTOM *@ 78 @* --------------------------------------------------------------------------------------------------------------------- *@ 79 80 81 string posterHeight = Model.Item.GetRawValueString("PosterHeight", ""); 82 posterHeight = posterHeight == "small" ? "min-vh-25" : posterHeight; 83 posterHeight = posterHeight == "medium" ? "min-vh-50" : posterHeight; 84 posterHeight = posterHeight == "large" ? "min-vh-75" : posterHeight; 85 86 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 87 contentPadding = contentPadding == "none" ? "p-3 px-xl-3 py-xl-4" : contentPadding; 88 contentPadding = contentPadding == "small" ? "p-3 p-xl-4" : contentPadding; 89 contentPadding = contentPadding == "large" ? "p-4 p-xl-5" : contentPadding; 90 91 string maxWidth = Model.Item.GetRawValueString("TextReadability", "max-width-on"); 92 maxWidth = maxWidth == "max-width-on" ? " mw-75ch" : maxWidth; 93 maxWidth = maxWidth == "max-width-off" ? "" : maxWidth; 94 95 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 96 97 if (!string.IsNullOrEmpty(groupImage)) { 98 var parms = new Dictionary<string, object>(); 99 parms.Add("cssClass", "h-100 w-100"); 100 parms.Add("columns", Model.GridRowColumnCount); 101 102 switch (layout) { 103 case "align-top-left-text-left": 104 alignment = "text-start justify-content-start align-items-start"; 105 break; 106 case "align-top-center-text-center": 107 alignment = "text-center justify-content-center align-items-start"; 108 break; 109 case "align-top-right-text-right": 110 alignment = "text-end justify-content-end align-items-start"; 111 break; 112 case "align-middle-left-text-left": 113 alignment = "text-start justify-content-start align-items-center"; 114 break; 115 case "align-middle-center-text-center": 116 alignment = "text-center justify-content-center align-items-center"; 117 break; 118 case "align-middle-right-text-right": 119 alignment = "text-end justify-content-end align-items-center"; 120 break; 121 case "align-bottom-left-text-left": 122 alignment = "text-start justify-content-start align-items-end"; 123 break; 124 case "align-bottom-center-text-center": 125 alignment = "text-center justify-content-center align-items-end"; 126 break; 127 case "align-bottom-right-text-right": 128 alignment = "text-end justify-content-end align-items-end"; 129 break; 130 } 131 132 <div class="position-relative h-100@(theme) @(posterHeight) item_@Model.Item.SystemName.ToLower()"> 133 @if (!string.IsNullOrEmpty(groupImage)) { 134 string imageFilter = Model.Item.GetRawValueString("ImageFilter", ""); 135 imageFilter = imageFilter == "no-filter" ? "" : imageFilter; 136 imageFilter = imageFilter == "filter" ? " image-filter" : imageFilter; 137 138 <div class="position-absolute top-0 bottom-0 end-0 start-0@(imageFilter)"> 139 @RenderPartial("Components/Image.cshtml", new FileViewModel { Path = groupImage }, parms) 140 </div> 141 } 142 143 @if (!hideTitle || !hideDescription) { 144 <div class="container-xl h-100 @(contentPadding)"> 145 <div class="h-100 w-100 position-relative d-flex @(alignment)"> 146 <div class="@(maxWidth)"> 147 @if (!hideTitle) { 148 <h1 class="@titleFontSize">@headerName</h1> 149 } 150 151 @if (!hideDescription && !string.IsNullOrEmpty(groupDescription)) { 152 <div class="@descriptionFontSize mb-0-last-child"> 153 @groupDescription 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 } 160 161 </div> 162 } else if (Pageview.IsVisualEditorMode) { 163 <div class="alert alert-dark m-0" role="alert"> 164 <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> 165 </div> 166 } 167 } else if (Pageview.IsVisualEditorMode) { 168 <div class="alert alert-dark m-0" role="alert"> 169 <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> 170 </div> 171 } 172
Bipolar isolator konverter / splitter
Bipolar isolator konverter / splitter

Bipolar isolator konverter / splitter

3118

Vis produkt
Loop-forsynet isolator
Loop-forsynet isolator

Loop-forsynet isolator

3185

Vis produkt
2-trådstransmitter-isolator
2-trådstransmitter-isolator

2-trådstransmitter-isolator

3186

Vis produkt
Impulsisolator / kontaktforstærker, NPN-udgang
Impulsisolator / kontaktforstærker, NPN-udgang

Impulsisolator / kontaktforstærker, NPN-udgang

3202

Vis produkt
Universel frekvenskonverter, analog udgang
Universel frekvenskonverter, analog udgang

Universel frekvenskonverter, analog udgang

3225

Vis produkt
Temperaturkonverter, loop-forsynet, isoleret
Temperaturkonverter, loop-forsynet, isoleret

Temperaturkonverter, loop-forsynet, isoleret

3331

Vis produkt
Pt100-konverter, loop-forsynet
Pt100-konverter, loop-forsynet

Pt100-konverter, loop-forsynet

3333

Vis produkt
HART temperaturkonverter, loop-forsynet, iso.
HART temperaturkonverter, loop-forsynet, iso.

HART temperaturkonverter, loop-forsynet, iso.

3337

Vis produkt
Power connector unit
Power connector unit

Power connector unit

3405

Vis produkt
Universel uni- / bipolar signaltransmitter
Universel uni- / bipolar signaltransmitter

Universel uni- / bipolar signaltransmitter

4104

Vis produkt
Universel transmitter
Universel transmitter

Universel transmitter

4114

Vis produkt
Universel transmitter
Universel transmitter

Universel transmitter

4116

Vis produkt
24 ud af 79 produkter
Hent flere produkter

Performance
made smarter