
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


Loop-forsynet isolator
3185

2-trådstransmitter-isolator
3186

Impulsisolator / kontaktforstærker, NPN-udgang
3202

Universel frekvenskonverter, analog udgang
3225

Temperaturkonverter, loop-forsynet, isoleret
3331

Pt100-konverter, loop-forsynet
3333

HART temperaturkonverter, loop-forsynet, iso.
3337

Power connector unit
3405

Universel uni- / bipolar signaltransmitter
4104

Universel transmitter
4114

Universel transmitter
4116
24 ud af 79 produkter
