Kontakt
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_74206ecdd6fb462e82a6b249e21f2294.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")) 10 { 11 productList = (ProductListViewModel)Dynamicweb.Context.Current.Items["ProductList"]; 12 } 13 else if (Pageview.Page.Item["DummyProductGroup"] != null && Pageview.IsVisualEditorMode) 14 { 15 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 16 ProductListViewModel groupList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 17 18 if (groupList?.Products is object) 19 { 20 productList = groupList; 21 } 22 } 23 } 24 25 @if (productList is object) 26 { 27 string layout = Model.Item.GetRawValueString("Layout", "align-middle-center-text-center"); 28 string alignment = ""; 29 30 string searchParameter = Dynamicweb.Context.Current.Request.GetString("q"); 31 32 bool hideTitle = Model.Item.GetBoolean("HideGroupTitle"); 33 string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "display-4"); 34 35 string groupName = productList?.Group?.Name != null ? productList.Group.Name : ""; 36 string headerName = searchParameter != "" ? Translate("Search results for") + ": " + searchParameter : groupName; 37 38 bool hideDescription = Model.Item.GetBoolean("HideGroupDescription"); 39 string groupDescription = productList?.Group?.Description != null ? productList.Group.Description : ""; 40 string descriptionFontSize = Model.Item.GetRawValueString("DescriptionFontSize", "fs-6"); 41 42 string groupImage = productList?.Group?.Assets != null ? productList.Group.Assets.FirstOrDefault(x => x.Name == "LargeImage").Value : ""; 43 if (groupImage.StartsWith("/") && !groupImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase)) 44 { 45 groupImage = $"/Files{groupImage}"; 46 } 47 48 string posterHeight = Model.Item.GetRawValueString("PosterHeight", ""); 49 posterHeight = posterHeight == "small" ? "min-vh-25" : posterHeight; 50 posterHeight = posterHeight == "medium" ? "min-vh-50" : posterHeight; 51 posterHeight = posterHeight == "large" ? "min-vh-75" : posterHeight; 52 53 string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); 54 contentPadding = contentPadding == "none" ? "p-3 px-xl-3 py-xl-4" : contentPadding; 55 contentPadding = contentPadding == "small" ? "p-3 p-xl-4" : contentPadding; 56 contentPadding = contentPadding == "large" ? "p-4 p-xl-5" : contentPadding; 57 58 string maxWidth = Model.Item.GetRawValueString("TextReadability", "max-width-on"); 59 maxWidth = maxWidth == "max-width-on" ? " mw-75ch" : maxWidth; 60 maxWidth = maxWidth == "max-width-off" ? "" : maxWidth; 61 62 string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; 63 64 if (!string.IsNullOrEmpty(groupImage)) 65 { 66 var parms = new Dictionary<string, object>(); 67 parms.Add("cssClass", "h-100 w-100"); 68 parms.Add("columns", Model.GridRowColumnCount); 69 70 switch (layout) 71 { 72 case "align-top-left-text-left": 73 alignment = "text-start justify-content-start align-items-start"; 74 break; 75 case "align-top-center-text-center": 76 alignment = "text-center justify-content-center align-items-start"; 77 break; 78 case "align-top-right-text-right": 79 alignment = "text-end justify-content-end align-items-start"; 80 break; 81 case "align-middle-left-text-left": 82 alignment = "text-start justify-content-start align-items-center"; 83 break; 84 case "align-middle-center-text-center": 85 alignment = "text-center justify-content-center align-items-center"; 86 break; 87 case "align-middle-right-text-right": 88 alignment = "text-end justify-content-end align-items-center"; 89 break; 90 case "align-bottom-left-text-left": 91 alignment = "text-start justify-content-start align-items-end"; 92 break; 93 case "align-bottom-center-text-center": 94 alignment = "text-center justify-content-center align-items-end"; 95 break; 96 case "align-bottom-right-text-right": 97 alignment = "text-end justify-content-end align-items-end"; 98 break; 99 } 100 101 <div class="position-relative h-100@(theme) @(posterHeight) item_@Model.Item.SystemName.ToLower()"> 102 @if (!string.IsNullOrEmpty(groupImage)) 103 { 104 string imageFilter = Model.Item.GetRawValueString("ImageFilter", ""); 105 imageFilter = imageFilter == "no-filter" ? "" : imageFilter; 106 imageFilter = imageFilter == "filter" ? " image-filter" : imageFilter; 107 108 <div class="position-absolute top-0 bottom-0 end-0 start-0@(imageFilter)"> 109 @RenderPartial("Components/Image.cshtml", new FileViewModel { Path = groupImage }, parms) 110 </div> 111 } 112 113 @if (!hideTitle || !hideDescription) 114 { 115 <div class="container-xl h-100 @(contentPadding)"> 116 <div class="h-100 w-100 position-relative d-flex @(alignment)"> 117 <div class="@(maxWidth)"> 118 @if (!hideTitle) 119 { 120 <h1 class="@titleFontSize">@headerName</h1> 121 } 122 123 @if (!hideDescription && !string.IsNullOrEmpty(groupDescription)) 124 { 125 <div class="@descriptionFontSize mb-0-last-child"> 126 @groupDescription 127 </div> 128 } 129 </div> 130 </div> 131 </div> 132 } 133 134 </div> 135 } 136 else if (Pageview.IsVisualEditorMode) 137 { 138 <div class="alert alert-dark m-0" role="alert"> 139 <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> 140 </div> 141 } 142 } 143 else if (Pageview.IsVisualEditorMode) 144 { 145 <div class="alert alert-dark m-0" role="alert"> 146 <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> 147 </div> 148 } 149
Hand Sander HM 150
Hand Sander HM 150

Hand Sander HM 150

1010094
Sanding block flat hand grip for sanding discs Ø150m

Sanding block flat hand grip for sanding discs Ø150m

SAB01
Sanding block - ergonomic grip + 3 shapes

Sanding block - ergonomic grip + 3 shapes

SAB07
Sanding block with extraction, 70 x 125mm, 8 holes

Sanding block with extraction, 70 x 125mm, 8 holes

SAB30
Sanding block with extraction, 70 x 198mm, 8 holes

Sanding block with extraction, 70 x 198mm, 8 holes

SAB31
Sanding block with extraction, 70 x 400mm, 14 holes

Sanding block with extraction, 70 x 400mm, 14 holes

SAB32
Sanding block with extraction, 115 x 230mm, 10 holes

Sanding block with extraction, 115 x 230mm, 10 holes

SAB33
Sanding block w. extraction, 70x198mm, 8 holes + 4 shapes

Sanding block w. extraction, 70x198mm, 8 holes + 4 shapes

SAB35
Board for sanding blocks

Board for sanding blocks

SAB50
9 z 9 produkty
Klikając „Akceptuj wszystko”, wyrażasz zgodę na gromadzenie przez nas informacji o Tobie do różnych celów, w tym: Statystyki i marketingu