Filtrér udvalget:

BJÖRK berøringsfri dispenser til flydende sæbe/desinfektion, hvid
Error executing template "Designs/Swift-v2/Paragraph/Swift-v2_ProductDefaultImage.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_54383a43615944e3b07b22ca1b7d95cb.<>c__DisplayClass0_0.<ExecuteAsync>b__2(MediaViewModel x)
   at System.Collections.Generic.List`1.RemoveAll(Predicate`1 match)
   at CompiledRazorTemplates.Dynamic.RazorEngine_54383a43615944e3b07b22ca1b7d95cb.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.Ecommerce.ProductCatalog 3 @using Dynamicweb.Ecommerce.CustomerExperienceCenter.Favorites 4 5 @{ 6 ProductViewModel product = null; 7 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 8 { 9 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 10 } 11 else if (Pageview.Page.Item["DummyProduct"] != null && Pageview.IsVisualEditorMode) 12 { 13 var pageViewModel = Dynamicweb.Frontend.ContentViewModelFactory.CreatePageInfoViewModel(Pageview.Page); 14 ProductListViewModel productList = pageViewModel.Item.GetValue("DummyProduct") != null ? pageViewModel.Item.GetValue("DummyProduct") as ProductListViewModel : new ProductListViewModel(); 15 16 if (productList?.Products is object) 17 { 18 product = productList.Products[0]; 19 } 20 } 21 } 22 23 @if (product is object) 24 { 25 string imagePath = product?.DefaultImage?.Value ?? ""; 26 string imagePathUrlEncoded = Dynamicweb.Context.Current.Server.UrlEncode(imagePath); 27 28 string ratio = Model.Item.GetRawValueString("ImageAspectRatio", ""); 29 ratio = ratio != "0" ? ratio : ""; 30 string ratioCssClass = ratio != "" ? " ratio" : ""; 31 string ratioVariable = ratio != "" ? "--bs-aspect-ratio: " + ratio : ""; 32 33 string width = Model.Item.GetRawValueString("Width", "auto"); 34 int smallImageSize = 640; 35 int largeImageSize = width == "auto" ? 1280 : Convert.ToInt32(width); 36 37 string ImageObjectFit = Model.Item.GetRawValueString("ImageObjectFit", "contain"); 38 39 string imagePathXs = "/Admin/Public/GetImage.ashx?width=" + smallImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 40 string imagePathS = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 41 string imagePathFallBack = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + imagePathUrlEncoded + "&format=webp"; 42 43 bool showFavoritesSelector = !string.IsNullOrEmpty(Model.Item.GetString("ShowAddToFavorites")) ? Model.Item.GetBoolean("ShowAddToFavorites") : false; 44 string anonymousUsersLimitations = Pageview.AreaSettings.GetRawValueString("AnonymousUsers", ""); 45 bool anonymousUser = Pageview.User == null; 46 47 var favoriteParameters = new Dictionary<string, object>(); 48 if (!anonymousUser && showFavoritesSelector) 49 { 50 int defaultFavoriteListId = 0; 51 52 IEnumerable<FavoriteList> favoreiteLists = Pageview.User.GetFavoriteLists(); 53 if (favoreiteLists.Count() == 1) 54 { 55 foreach (FavoriteList list in favoreiteLists) 56 { 57 defaultFavoriteListId = list.ListId; 58 } 59 } 60 61 favoriteParameters.Add("ListId", defaultFavoriteListId); 62 } 63 64 MediaViewModel alternativeImage = new MediaViewModel(); 65 if (Model.Item.GetBoolean("ShowAlternativeImageOnHover")) { 66 var selectedImageCategories = Model.Item.GetList("GetAlternativeImageFrom")?.GetRawValue().OfType<string>().ToList(); 67 List<MediaViewModel> allAssetsImages = product.AssetCategories.Where(x => selectedImageCategories.Contains(x.SystemName)).SelectMany(x => x.Assets).ToList(); 68 allAssetsImages.RemoveAll(x => x.Value == product.DefaultImage.Value); 69 alternativeImage = allAssetsImages.FirstOrDefault(); 70 } 71 72 string altImagePathXs = string.Empty; 73 string altImagePathS = string.Empty; 74 75 if (!string.IsNullOrEmpty(alternativeImage?.Value)) 76 { 77 altImagePathXs = "/Admin/Public/GetImage.ashx?width=" + smallImageSize + "&image=" + Dynamicweb.Context.Current.Server.UrlEncode(alternativeImage.Value) + "&format=webp"; 78 altImagePathS = "/Admin/Public/GetImage.ashx?width=" + largeImageSize + "&image=" + Dynamicweb.Context.Current.Server.UrlEncode(alternativeImage.Value) + "&format=webp"; 79 } 80 81 string colorSchemeBorder = !string.IsNullOrWhiteSpace(Model.ColorScheme?.Id) ? "border: 1px solid rgba(0,0,0,0)" : ""; 82 string imageId = "ProductImage_" + product.Id + product.VariantId.Replace(".", "_"); 83 string fullWidth = width == "auto" ? "w-100" : ""; 84 string customWidth = width != "auto" ? "style=\"width: " + width + "px\"" : "style=\"min-width: 60px\""; 85 86 if (!string.IsNullOrEmpty(imagePath)) 87 { 88 <figure class="h-100 @fullWidth position-relative item_@Model.Item.SystemName.ToLower()" @customWidth data-dw-colorscheme="@Model.ColorScheme?.Id"> 89 <div class="ratio" style="@(ratioVariable)"> 90 <div class="d-flex justify-content-center align-items-center"> 91 @if (imagePath.StartsWith("/Files/", StringComparison.OrdinalIgnoreCase)) 92 { 93 <img id="@imageId" 94 srcset=" 95 @imagePathXs @(smallImageSize)w, 96 @imagePathS @(largeImageSize)w" 97 sizes="(max-width: 992px) 50vw, 25vw" 98 src="@imagePathFallBack" 99 @if (Model.Item.GetBoolean("ShowAlternativeImageOnHover") && !string.IsNullOrEmpty(alternativeImage?.Value)) { <text> 100 data-alternative-image=" 101 @altImagePathXs @(smallImageSize)w, 102 @altImagePathS @(largeImageSize)w" 103 onmouseover="swift.Image.swapImage(event)" 104 onmouseout="swift.Image.swapImage(event)" 105 </text> } 106 loading="lazy" 107 decoding="async" 108 class="h-100 w-100" 109 style="object-fit: @ImageObjectFit; @colorSchemeBorder" 110 alt="@product.Name" 111 itemprop="image"> 112 } 113 else 114 { 115 <img id="@imageId" 116 src="/Files/@product.DefaultImage.Value" 117 loading="lazy" 118 class="h-100 w-100" 119 style="object-fit: contain; @colorSchemeBorder" 120 alt="@product.Name" 121 itemprop="image"> 122 } 123 </div> 124 </div> 125 126 @if (!anonymousUser) 127 { 128 if (showFavoritesSelector) 129 { 130 <div class="position-absolute top-0 end-0 my-3" style="z-index: 2"> 131 @RenderPartial("Components/ToggleFavorite.cshtml", product, favoriteParameters) 132 </div> 133 } 134 } 135 </figure> 136 } 137 } 138 else if (Pageview.IsVisualEditorMode) 139 { 140 <div class="alert alert-dark m-0">@Translate("The default image will be shown here, if any")</div> 141 } 142
Kan farvetilpasses

BJÖRK berøringsfri dispenser til flydende sæbe/desinfektion, hvid

2.721,38 kr. På lager
LOKI berøringsfri dispenser til sæbe/desinfektion, hvid
LOKI berøringsfri dispenser til sæbe/desinfektion, hvid
Kan farvetilpasses

LOKI berøringsfri dispenser til sæbe/desinfektion, hvid

Fra 2.285,75 kr. På lager
LOKI berøringsfri desinfektionsdispenser til spray, rustfrit stål
LOKI berøringsfri desinfektionsdispenser til spray, rustfrit stål

LOKI berøringsfri desinfektionsdispenser til spray, rustfrit stål

2.285,75 kr. På lager
LOKI berøringsfri desinfektionsdispenser til spray, hvid
LOKI berøringsfri desinfektionsdispenser til spray, hvid

LOKI berøringsfri desinfektionsdispenser til spray, hvid

2.285,75 kr. På lager
LOKI berøringsfri desinfektionsdispenser til spray, valgfri RAL CLASSIC
LOKI berøringsfri desinfektionsdispenser til spray, valgfri RAL CLASSIC

LOKI berøringsfri desinfektionsdispenser til spray, valgfri RAL CLASSIC

3.085,75 kr. På lager
LOKI berøringsfri desinfektionsdispenser til spray, sort
LOKI  berøringsfri desinfektionsdispenser til spray, sort

LOKI berøringsfri desinfektionsdispenser til spray, sort

2.285,75 kr. På lager
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, rustfrit stål
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, rustfrit stål

LOKI berøringsfri dispenser til skumsæbe/-desinfektion, rustfrit stål

2.285,75 kr. På lager
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, hvid
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, hvid

LOKI berøringsfri dispenser til skumsæbe/-desinfektion, hvid

2.285,75 kr. På lager
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, sort
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, sort

LOKI berøringsfri dispenser til skumsæbe/-desinfektion, sort

2.285,75 kr. På lager
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, valgfri RAL CLASSIC
LOKI berøringsfri dispenser til skumsæbe/-desinfektion, valgfri RAL CLASSIC

LOKI berøringsfri dispenser til skumsæbe/-desinfektion, valgfri RAL CLASSIC

3.085,75 kr. På lager
CARL sæbedispenser
CARL sæbedispenser
Kan farvetilpasses

CARL sæbedispenser

Fra 2.700,00 kr. På lager
STAINLESS DESIGN berøringsfri dispenser til sæbe/desinfektion
STAINLESS DESIGN berøringsfri dispenser til sæbe/desinfektion

STAINLESS DESIGN berøringsfri dispenser til sæbe/desinfektion

2.303,18 kr. På lager
12 af 43 produkter
Vis flere produkter