Download Product Assets

On this list you can find relevant products, where you can use the filters to narrow down your search. Add products to your download cart. The selected product information and product assets (images, drawings etc.) will be send to the selected email address

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_e434bc9d4f12480490df599f9ed06e99.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> @using Dynamicweb.Frontend.Navigation @using Dynamicweb.Ecommerce.ProductCatalog @using Dynamicweb.Environment @using Dynamicweb.Frontend @{ ProductListViewModel productList = null; if (Dynamicweb.Context.Current.Items.Contains("ProductList")) { productList = (ProductListViewModel)Dynamicweb.Context.Current.Items["ProductList"]; } else if (Pageview.Page.Item["DummyProductGroup"] != null && Pageview.IsVisualEditorMode) { var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); ProductListViewModel groupList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); if (groupList?.Products is object) { productList = groupList; } } } @if (productList is object) { string layout = Model.Item.GetRawValueString("Layout", "align-middle-center-text-center"); string alignment = ""; string searchParameter = Dynamicweb.Context.Current.Request.GetString("q"); bool hideTitle = Model.Item.GetBoolean("HideGroupTitle"); string titleFontSize = Model.Item.GetRawValueString("TitleFontSize", "display-4"); string groupName = productList?.Group?.Name != null ? productList.Group.Name : ""; string headerName = searchParameter != "" ? Translate("Search results for") + ": " + searchParameter : groupName; bool hideDescription = Model.Item.GetBoolean("HideGroupDescription"); string groupDescription = productList?.Group?.Description != null ? productList.Group.Description : ""; string descriptionFontSize = Model.Item.GetRawValueString("DescriptionFontSize", "fs-6"); string groupImage = productList?.Group?.Assets != null ? productList.Group.Assets.FirstOrDefault(x => x.Name == "LargeImage").Value : ""; if (groupImage.StartsWith("/") && !groupImage.StartsWith("/Files", StringComparison.OrdinalIgnoreCase)) { groupImage = $"/Files{groupImage}"; } string posterHeight = Model.Item.GetRawValueString("PosterHeight", ""); posterHeight = posterHeight == "small" ? "min-vh-25" : posterHeight; posterHeight = posterHeight == "medium" ? "min-vh-50" : posterHeight; posterHeight = posterHeight == "large" ? "min-vh-75" : posterHeight; string contentPadding = Model.Item.GetRawValueString("ContentPadding", ""); contentPadding = contentPadding == "none" ? "p-3 px-xl-3 py-xl-4" : contentPadding; contentPadding = contentPadding == "small" ? "p-3 p-xl-4" : contentPadding; contentPadding = contentPadding == "large" ? "p-4 p-xl-5" : contentPadding; string maxWidth = Model.Item.GetRawValueString("TextReadability", "max-width-on"); maxWidth = maxWidth == "max-width-on" ? " mw-75ch" : maxWidth; maxWidth = maxWidth == "max-width-off" ? "" : maxWidth; string theme = !string.IsNullOrWhiteSpace(Model.Item.GetRawValueString("Theme")) ? " theme " + Model.Item.GetRawValueString("Theme").Replace(" ", "").Trim().ToLower() : ""; if (!string.IsNullOrEmpty(groupImage)) { var parms = new Dictionary<string, object>(); parms.Add("cssClass", "h-100 w-100"); parms.Add("columns", Model.GridRowColumnCount); switch (layout) { case "align-top-left-text-left": alignment = "text-start justify-content-start align-items-start"; break; case "align-top-center-text-center": alignment = "text-center justify-content-center align-items-start"; break; case "align-top-right-text-right": alignment = "text-end justify-content-end align-items-start"; break; case "align-middle-left-text-left": alignment = "text-start justify-content-start align-items-center"; break; case "align-middle-center-text-center": alignment = "text-center justify-content-center align-items-center"; break; case "align-middle-right-text-right": alignment = "text-end justify-content-end align-items-center"; break; case "align-bottom-left-text-left": alignment = "text-start justify-content-start align-items-end"; break; case "align-bottom-center-text-center": alignment = "text-center justify-content-center align-items-end"; break; case "align-bottom-right-text-right": alignment = "text-end justify-content-end align-items-end"; break; } <div class="position-relative h-100@(theme) @(posterHeight) item_@Model.Item.SystemName.ToLower()"> @if (!string.IsNullOrEmpty(groupImage)) { string imageFilter = Model.Item.GetRawValueString("ImageFilter", ""); imageFilter = imageFilter == "no-filter" ? "" : imageFilter; imageFilter = imageFilter == "filter" ? " image-filter" : imageFilter; <div class="position-absolute top-0 bottom-0 end-0 start-0@(imageFilter)"> @RenderPartial("Components/Image.cshtml", new FileViewModel { Path = groupImage }, parms) </div> } @if (!hideTitle || !hideDescription) { <div class="container-xl h-100 @(contentPadding)"> <div class="h-100 w-100 position-relative d-flex @(alignment)"> <div class="@(maxWidth)"> @if (!hideTitle) { <h1 class="@titleFontSize">@headerName</h1> } @if (!hideDescription && !string.IsNullOrEmpty(groupDescription)) { <div class="@descriptionFontSize mb-0-last-child"> @groupDescription </div> } </div> </div> </div> } </div> } else if (Pageview.IsVisualEditorMode) { <div class="alert alert-dark m-0" role="alert"> <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> </div> } } else if (Pageview.IsVisualEditorMode) { <div class="alert alert-dark m-0" role="alert"> <span>@Translate("Product group poster: The poster paragraph will be shown here, if any")</span> </div> }
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Functionality, Statistics and Marketing