Branding Stylesheet || ProductId : PROD313 VariantId :

pdp - offerte

Product detail configuration page

Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetName.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_13d1a969b9114ec7bfbe9dd23ed33590.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetName.cshtml:line 15
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 3 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 5 6 @{ 7 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 8 9 ProductDetailWidgetName _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetName", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetName>() ?? new ProductDetailWidgetName(); 10 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj) Dynamicweb.Context.Current.Session["ProductAndVariants"]; 11 } 12 13 <div id="@paragraphID" class="pdp__ProductName @_data.CssClass"> 14 <h1 class="pdp-header__title"> 15 @if (_data.DisplayManufacturer && ProductAndVariants.Manufacturer != null) 16 { 17 <span class="pdp-header__manufacturer">@ProductAndVariants.Manufacturer.Name</span> 18 } 19 <span class="pdp-header__productname">@ProductAndVariants.ProductInfo.Name</span> 20 </h1> 21 </div> 22 23 <style> 24 25 .pdp__ProductName .pdp-header__productname { 26 color: var(--Color); 27 @_data.FontConfigurationProductName.InlineStyles 28 } 29 30 </style> 31
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetImages.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_35293ef555944826acebcb7bb59c85d5.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetImages.cshtml:line 21
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 5 @using System.Text.RegularExpressions; 6 7 8 @{ 9 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 10 ProductDetailWidgetImages _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetImages", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetImages>() ?? new ProductDetailWidgetImages(); 11 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj) Dynamicweb.Context.Current.Session["ProductAndVariants"]; 12 13 ProductViewModel product = new ProductViewModel(); 14 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 15 { 16 product = (ProductViewModel) Dynamicweb.Context.Current.Items["ProductDetails"]; 17 } 18 19 List<FieldOptionValueViewModel> productRibbons = null; 20 21 if (product.ProductFields["ProductRibbon"] != null) 22 { 23 productRibbons = (List<FieldOptionValueViewModel>)product.ProductFields["ProductRibbon"].Value; 24 } 25 26 //ProductObj ProductObj = (ProductObj)HttpContext.Current.Session["ProductDetails"]; 27 28 //ProductDetailObj DefaultProduct = ProductObj.Default[0]; 29 30 //ProductInfoObj DefaultProductInfo = DefaultProduct.ProductInfo; 31 32 //List<ProductAssetsObj> Assets = DefaultProduct.ProductImages.ProductAssets; 33 34 bool displayRibbon = _data.DisplayRibbon; 35 bool displayManufacturerLogo = _data.DisplayManufacturerLogo; 36 37 string videoUrl = ProductAndVariants?.ProductDetail?.YoutubeProductVideo ?? ""; 38 string videoId = ""; 39 string origin = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 40 41 if (!string.IsNullOrWhiteSpace(videoUrl)) 42 { 43 // regex for direct YouTube ID (e.g. keBgXIeTmhk) 44 if (Regex.IsMatch(videoUrl, @"^[a-zA-Z0-9_-]{11}$")) 45 { 46 videoId = videoUrl; 47 } 48 // regex for https://youtu.be/{videoId} 49 else if (Regex.IsMatch(videoUrl, @"youtu\.be\/([^?&]+)")) 50 { 51 Match match = Regex.Match(videoUrl, @"youtu\.be\/([^?&]+)"); 52 videoId = match.Groups[1].Value; 53 } 54 // regex for https://www.youtube.com/watch?v={videoId} 55 else if (Regex.IsMatch(videoUrl, @"v=([^&]+)")) 56 { 57 Match match = Regex.Match(videoUrl, @"v=([^&]+)"); 58 videoId = match.Groups[1].Value; 59 } 60 } 61 } 62 63 <div id="@paragraphID" class="pdp-paragraph w-full @_data.CssClass"> 64 65 @if (!string.IsNullOrWhiteSpace(ProductAndVariants.ProductDetail.ProductRibbon) && displayRibbon) 66 { 67 <p class="product-detailpage__ribbon product-detailpage__ribbon--big"><span>@ProductAndVariants.ProductDetail.ProductRibbon</span></p> 68 } 69 70 <section class="product-detailpage__images pdp__images-container"> 71 <section class="productimages pdp__images"> 72 73 <section class="productimages__wrapper"> 74 75 <div class="productimages__carousel-big hidden"> 76 77 <div class="productimages__item"> 78 <img class="w-auto" src="/Admin/Public/GetImage.ashx?Image=@ProductAndVariants.Images.Default&Format=webp&Quality=-1&width=800&height=800" alt="@ProductAndVariants.Images.Default" height="800" width="800" /> 79 </div> 80 81 @if (!string.IsNullOrWhiteSpace(videoId)) 82 { 83 <div class="productimages__item"> 84 <div class="productimages__carousel__video-container"> 85 <lite-youtube 86 videoid="@videoId" 87 params="controls=1&loop=0&playlist=@videoId&playsinline=1&modestbranding=1&mute=1&rel=0&enablejsapi=1&origin=@origin&disablekb=0"> 88 </lite-youtube> 89 </div> 90 </div> 91 } 92 93 @if (ProductAndVariants.Images.AssetImages != null) 94 { 95 foreach (Image Image in ProductAndVariants.Images.AssetImages) 96 { 97 <div class="productimages__item"> 98 <img class="w-auto" src="/Admin/Public/GetImage.ashx?Image=@Image.Value&Format=webp&Quality=-1&width=800&height=800" alt="@Image.Value" /> 99 </div> 100 } 101 } 102103 </div> 104 </section> 105106 <div class="productimages__carousel-thumbnails hidden"> 107108 <div class="productimages__thumbnail" style="display: none;"> 109 <img class="w-auto" src="/Admin/Public/GetImage.ashx?Image=@ProductAndVariants.Images.Default&Crop=5&Format=webp&Quality=90&Compression=80&width=100&height=100" alt="@ProductAndVariants.Images.Default" height="100" width="100" /> 110 </div> 111112 @if(!string.IsNullOrWhiteSpace(videoId)) 113 { 114 <div class="productimages__thumbnail productimages__thumbnail--video pin-t mr-4" aria-hidden="true"> 115 <img class="h-full" src="https://img.youtube.com/vi/@videoId/0.jpg" alt="Video preview" height="84" width="84"> 116 <span class="video-icon"> 117 <i class="fas fa-play"></i> 118 </span> 119 </div> 120 } 121122 @if (ProductAndVariants.Images.AssetImages != null) 123 { 124 foreach (Image Thumb in ProductAndVariants.Images.AssetImages) 125 { 126 <div class="productimages__thumbnail"> 127 <img class="product-image" src="/Admin/Public/GetImage.ashx?Image=@Thumb.Value&Crop=5&Format=webp&Quality=90&Compression=80&width=100&height=100" alt="Thumbnail @Thumb.Value" width="100" height="100" /> 128 </div> 129 } 130 } 131 </div> 132133 <section class="productimages__wrapper"> 134 @if (displayManufacturerLogo && ProductAndVariants.Manufacturer != null && ProductAndVariants.Manufacturer.Logo != "") 135 { 136 <img src="/Admin/Public/GetImage.ashx?Image=/Files/@ProductAndVariants.Manufacturer.Logo&Crop=5&Format=webp&Quality=90&Compression=80&width=150" class="manufacturer__logo" alt="Manufacturer" width="150" height="50" /> 137 } 138 </section> 139140 </section> 141 </section> 142 </div> 143144 <style> 145 .productimages__item { 146 height: 400px; 147 } 148 </style> 149
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetProductUsps.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_0bca04b6d7c14023b213cfbef871216d.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetProductUsps.cshtml:line 13
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 3 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 5 6 @{ 7 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 8 ProductDetailWidgetProductUsps _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetProductUsps", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetProductUsps>() ?? new ProductDetailWidgetProductUsps(); 9 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj)Dynamicweb.Context.Current.Session["ProductAndVariants"]; 10 string uspIcon = _data.USPIcon; 11 12 var productUsps = new List<String>(); 13 if (ProductAndVariants.USP != null && !string.IsNullOrWhiteSpace(ProductAndVariants.USP.USP1)) { productUsps.Add(ProductAndVariants.USP.USP1.ToString()); } 14 if (ProductAndVariants.USP != null && !string.IsNullOrWhiteSpace(ProductAndVariants.USP.USP2)) { productUsps.Add(ProductAndVariants.USP.USP2); } 15 if (ProductAndVariants.USP != null && !string.IsNullOrWhiteSpace(ProductAndVariants.USP.USP3)) { productUsps.Add(ProductAndVariants.USP.USP3); } 16 if (ProductAndVariants.USP != null && !string.IsNullOrWhiteSpace(ProductAndVariants.USP.USP4)) { productUsps.Add(ProductAndVariants.USP.USP4); } 17 if (ProductAndVariants.USP != null && !string.IsNullOrWhiteSpace(ProductAndVariants.USP.USP5)) { productUsps.Add(ProductAndVariants.USP.USP5); } 18 19 /* 20 21 ProductViewModel product = new ProductViewModel(); 22 if (Dynamicweb.Context.Current.Items.Contains("ProductDetails")) 23 { 24 product = (ProductViewModel)Dynamicweb.Context.Current.Items["ProductDetails"]; 25 } 26 27 var productUsps = new List<String>(); 28 29 if (product.ProductFields != null && product.ProductFields.ContainsKey("ProductUSP1")) 30 { 31 productUsps.Add(product.ProductFields["ProductUSP1"].Value.ToString()); 32 } 33 if (product.ProductFields != null && product.ProductFields.ContainsKey("ProductUSP2")) 34 { 35 productUsps.Add(product.ProductFields["ProductUSP2"].Value.ToString()); 36 } 37 if (product.ProductFields != null && product.ProductFields.ContainsKey("ProductUSP3")) 38 { 39 productUsps.Add(product.ProductFields["ProductUSP3"].Value.ToString()); 40 } 41 if (product.ProductFields != null && product.ProductFields.ContainsKey("ProductUSP4")) 42 { 43 productUsps.Add(product.ProductFields["ProductUSP4"].Value.ToString()); 44 } 45 if (product.ProductFields != null && product.ProductFields.ContainsKey("ProductUSP5")) 46 { 47 productUsps.Add(product.ProductFields["ProductUSP5"].Value.ToString()); 48 } 49 50 */ 51 52 } 53 54 <div id="@paragraphID" class="pdp-paragraph @_data.CssClass"> 55 56 <ul class="pdp-usplist"> 57 @foreach (string usp in productUsps) 58 { 59 if (!string.IsNullOrWhiteSpace(usp)) 60 { 61 <li class="pdp-usplist__item"> 62 @if (!string.IsNullOrWhiteSpace(uspIcon)) 63 { 64 <i class="pdp-usplist__uspicon @uspIcon"></i> 65 } 66 <span>@usp</span> 67 </li> 68 } 69 } 70 </ul> 71 72 </div> 73
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetShortDescription.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_380e0fa4f2f14b2ab7a965362f8fef79.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetShortDescription.cshtml:line 12
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 3 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 4 5 @{ 6 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 7 8 ProductDetailWidgetShortDescription _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetShortDescription", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetShortDescription>() ?? new ProductDetailWidgetShortDescription(); 9 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj) Dynamicweb.Context.Current.Session["ProductAndVariants"]; 10 11 string readMoreTarget = _data.ButtonTarget; 12 string shortDescription = ProductAndVariants.ProductInfo.ShortDescription; 13 } 14 15 <div id="@paragraphID" class="pdp-paragraph pdp-paragraph-short-description ProductShortDescription"> 16 @if(!string.IsNullOrWhiteSpace(shortDescription)) 17 { 18 <p class="pdp-header__productname">@shortDescription</p> 19 if(!string.IsNullOrWhiteSpace(readMoreTarget)) 20 { 21 <a href="@readMoreTarget" class="btn default-btn" target="_self"> 22 <span class="btn__text">@Translate("Productdetail.Readmore", "Read more")</span> 23 <i class="btn__icon fa-chevron-right"></i> 24 </a> 25 } 26 } 27 </div> 28
Professioneel advies nodig?

Vraag het aan één van onze specialisten.

Tel.: +31 (0)72 540 66 99

E-mail: info@koks.com

Bel mij terug
  • Productinformatie
  • Specificaties
  • Reviews
  • Accessoires
  • Andere uitvoeringen
  • Opties
  • Voordelen
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetLongDescription.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_0838bb6fa68447a0be82b3d52f75dc8a.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetLongDescription.cshtml:line 41
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 3 @using Dynamicweb; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Configuration.AdvancedGrid.Elements; 5 6 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 7 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 8 9 @{ 10 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 11 12 ProductDetailWidgetLongDescription _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetLongDescription", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetLongDescription>() ?? new ProductDetailWidgetLongDescription(); 13 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj)Dynamicweb.Context.Current.Session["ProductAndVariants"]; 14 15 bool IsNotContentManager = false; 16 bool isVisualEditor = Pageview.IsVisualEditorMode; 17 18 if (isVisualEditor) 19 { 20 System.Web.HttpContext.Current.Session["PreviousPage"] = Pageview.Page.ID; 21 IsNotContentManager = (Dynamicweb.Security.UserManagement.User.GetCurrentBackendUser()?.Groups?.All(g => g.Name != "Content managers") ?? true); 22 } 23 24 if (ProductAndVariants != null && ProductAndVariants.ProductInfo != null && ProductAndVariants.ProductInfo.LongDescription != null) 25 { 26 27 <div id="@paragraphID" class="ProductLongDescription @_data.CssClass"> 28 <div class="ProductLongDescription__header">@Translate("ProductDetailWidget.LongDescription.Header", "Productinformatie")</div> 29 30 <p>@ProductAndVariants.ProductInfo.LongDescription</p> 31 </div> 32 33 <style> 34 @_data.FontConfigurationProductName.InlineStyles 35 </style> 36 37 } 38 else 39 { 40 41 <script>console.dir(@ProductAndVariants.Template.Json)</script> 42 43 <placeholder id="@paragraphID" class="ProductLongDescription @_data.CssClass"></placeholder> 44 45 if (_data.HideTabWhenEmpty) 46 { 47 <script> 48 49 document.addEventListener('DOMContentLoaded', function () { 50 51 var Element = document.getElementById("@paragraphID"); 52 console.dir(Element); 53 var parentElement = Element.closest('.content-tab'); 54 console.dir(parentElement); 55 var TabElement = document.querySelector('[data-tab-target=' + parentElement.id + ']'); 56 console.dir(TabElement); 57 58 @{ 59 if (isVisualEditor && IsNotContentManager) 60 { 61 <text>TabElement.style.display = 'flex';</text> 62 } 63 else 64 { 65 <text>TabElement.style.display = 'none';</text> 66 } 67 } 68 69 }); 70 71 </script> 72 } 73 74 } 75 76 } 77
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetDownloadProductsheet.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_8717dc426e984c2581ede334d12262ab.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetDownloadProductsheet.cshtml:line 12
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 3 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 5 6 @{ 7 string paragraphID = Pageview.CurrentParagraph.ID.ToString(); 8 ProductDetailWidgetDownloadProductsheet _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetDownloadProductsheet", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetDownloadProductsheet>() ?? new ProductDetailWidgetDownloadProductsheet(); 9 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj)Dynamicweb.Context.Current.Session["ProductAndVariants"]; 10 } 11 12 @if (!string.IsNullOrWhiteSpace(ProductAndVariants.ProductDetail.DownloadProductsheet)) 13 { 14 15 <nav id="@paragraphID" class="cta-paragraph__btn-navigation @_data.CssClass"> 16 <a href="/Files/Images/@ProductAndVariants.ProductDetail.DownloadProductsheet" class="btn default-btn btn--@paragraphID" target="_blank"> 17 <i class="btn__icon fa-download cta-paragraph__btn-icon"></i> 18 <span class="btn__text cta-paragraph__btn cta-paragraph__btn-label">@_data.Label</span> 19 </a> 20 </nav> 21 22 } 23
Error executing template "Designs/ClientBase_generated/Paragraph/ProductDetailWidgetVideo.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_d044b5f5995149fc96cf7b005f00bb5e.Execute() in D:\dynamicweb.net\Solutions\Bluedesk\koksgroup.cloud.dynamicweb-cms.com\files\Templates\Designs\ClientBase_generated\Paragraph\ProductDetailWidgetVideo.cshtml:line 12
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 3 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Configuration.EcomConfiguration.ProductDetail.Widgets; 4 @using Bluedesk.DynamicWeb.ItemTypes.BaseSolution.Frontend; 5 @using System.Text.RegularExpressions; 6 7 @{ 8 var paragraphID = Pageview.CurrentParagraph.ID; 9 ProductDetailWidgetVideo _data = Dynamicweb.Services.Items.GetItem("ProductDetailWidgetVideo", Model.ItemId).ToCodeFirstItem<ProductDetailWidgetVideo>() ?? new ProductDetailWidgetVideo(); 10 ProductAndVariantsObj ProductAndVariants = (ProductAndVariantsObj)Dynamicweb.Context.Current.Session["ProductAndVariants"]; 11 12 string videoUrl = ProductAndVariants.ProductDetail == null ? null : ProductAndVariants.ProductDetail.YoutubeProductVideo; 13 string videoId = ""; 14 string origin = Dynamicweb.Environment.Helpers.LinkHelper.GetHttpDomain(); 15 16 } 17 18 <div id="@paragraphID" class="pdp-paragraph w-full @_data.CssClass"> 19 @{ 20 if (!string.IsNullOrWhiteSpace(videoUrl)) 21 { 22 // Regex for https://youtu.be/{videoId} 23 if (Regex.IsMatch(videoUrl, @".be\/(.[^?]*)")) 24 { 25 Match match = Regex.Match(videoUrl, @".be\/(.[^?]*)"); 26 videoId = match.Groups[1].Value; 27 28 <div class="product-video"> 29 <iframe loading="lazy" data-video="@videoId" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/@videoId?autoplay=0&controls=1&loop=0&playlist=@videoId&playsinline=1&modestbranding=0o&mute=1&rel=0&enablejsapi=1&origin=@origin&disablekb=1"></iframe> 30 </div> 31 } 32 // Regex for https://www.youtube.com/watch?v={videoId} 33 else if (Regex.IsMatch(videoUrl, @"v=([^&]+)")) 34 { 35 Match match = Regex.Match(videoUrl, @"v=([^&]+)"); 36 videoId = match.Groups[1].Value; 37 38 <div class="product-video"> 39 <iframe loading="lazy" data-video="@videoId" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/@videoId?autoplay=0&controls=1&loop=0&playlist=@videoId&playsinline=1&modestbranding=0o&mute=1&rel=0&enablejsapi=1&origin=@origin&disablekb=1"></iframe> 40 </div> 41 } 42 // Regex for https://player.vimeo.com/video/{videoId} 43 else if (Regex.IsMatch(videoUrl, "(?:http:|https:|)\\/\\/(?:player.|www.)?vimeo\\.com\\/(?:video\\/|embed\\/|watch\\?\\S*v=|v\\/)?(\\d*)", RegexOptions.IgnoreCase)) 44 { 45 Match match = Regex.Match(videoUrl, "(?:http:|https:|)\\/\\/(?:player.|www.)?vimeo\\.com\\/(?:video\\/|embed\\/|watch\\?\\S*v=|v\\/)?(\\d*)", RegexOptions.IgnoreCase); 46 videoId = match.Groups[1].Value; 47 48 <div class="product-video"> 49 <iframe loading="lazy" data-video="@videoId" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="Vimeo video player" src="https://player.vimeo.com/video/@videoId?title=0&byline=0&portrait=0&autoplay=0&controls=1&loop=0&muted=1"></iframe> 50 </div> 51 } 52 else 53 { 54 <div class="product-video"> 55 <iframe loading="lazy" data-video="@videoUrl" frameborder="0" allowfullscreen allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/@videoUrl?autoplay=0&controls=1&loop=0&playlist=@videoUrl&playsinline=1&modestbranding=0o&mute=1&rel=0&enablejsapi=1&origin=@origin&disablekb=1"></iframe> 56 </div> 57 } 58 } 59 } 60 </div> 61 62 <style> 63 .product-video iframe { 64 aspect-ratio: 16 / 9; 65 width: 50%; 66 height: auto; 67 min-width: 325px; 68 } 69 </style> 70

Plan een adviesgesprek met één van onze specialisten

 Laat u adviseren door een specialist
 Maak kennis met ons en onze producten
 Krijg inzicht in welke oplossing het beste bij u past

Reviews

4,5 / 5 (193 reviews)
5 / 5

Een pracht aparraat is. Werkt heerlijk.

4 / 5

5 / 5

Test review

5 / 5

Toppertje

2 / 5

Test review

1 / 5

Test 002

3 / 5

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, explicabo.

4 / 5

Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur magni dolores

5 / 5

Good!!

5 / 5

Test review

3 / 5

Test 2

3 / 5

5 / 5

Fantastische monitor. De bluetooth naar telefoon functie is echt geweldig. Ik installeerde de Hqx live-app op de telefoon van de klant en konden zo samen direct zien wat er in de afvoerleiding aan de hand was. Klanten vinden het echt een meerwaarde dat ze op deze manier mee kunnen kijken.

5 / 5

Ik heb deze monitor nu een paar maanden en ben er erg tevreden over. Bluetooth naar telefoon werkt geweldig. Ik heb zelfs een keer op locatie bij een klant een video van 6 minuten geüpload naar onedrive zodat ze direct op de zaak de inspectie konden bekijken.

4 / 5

Ik heb deze monitor 2 maanden geleden gekocht en hij werkt uitstekend. Ik kan iedereen deze monitor aanbevelen. De bluetoothverbinding van deze monitor naar een smartphone werkt uitstekend. De monitor is zeer gebruiksvriendelijk. Het is ideaal om het probleem meteen met de klant te kunnen delen.

5 / 5

Ik hou van deze monitor! Nog nooit eerder heb ik zulk scherp beeld gehad als met de CS12x.

4 / 5

Ik heb de CS12x gekocht om mijn CS10 monitor te vervangen. Ik ben erg blij met al die nieuwe functies.

5 / 5

Ik zit al vele jaren in het vak en het hebben van hoogwaardige apparatuur is voor mij de sleutel tot het succesvol traceren van een probleem in een afvoerleiding. Mijn CS12x in combinatie met mijn RIDGID haspels stelt mij in staat om duidelijk te zien wat het probleem is. We zijn er tevreden over deze hoogwaardige monitor met groot scherm.

5 / 5

Geweldig systeem. Compact, lichtgewicht en gebruiksvriendelijk. Zeer tevreden met deze aankoop.

5 / 5

Dit systeem is van onschatbare waarde. Duw de gebruiksvriendelijke camerakop door de afvoerbuis en binnen enkele minuten vindt je de oorzaak van het probleem. Wat vroeger veel tijd en energie vergde, kan nu in enkele minuten worden gedaan. Het is gemakkelijk te gebruiken, betaalbaar en betrouwbaar!

5 / 5

Snel en gemakkelijk te gebruiken

5 / 5

Gebruiksvriendelijk

5 / 5

Werkt geweldig. Maakt het leven een stuk gemakkelijker. Erg makkelijk te bedienen.

5 / 5

Ik heb dit artikel gekocht ter vervanging van mijn oude apparaat en het werkt echt geweldig! Zeer nauwkeurig. Echt een aanrader!

5 / 5

Ik gebruik de Scout nu 3 maanden en het is echt het beste wat er op de markt te verkrijgen is.

5 / 5

Ik gebruik de Flexshaft K9-102 meestal voor urinoirs, wastafels en gootstenen. De Flexshaft is gemakkelijk in gebruik. Je draagt hem naar binnen bij de klant en kunt direct aan de slag. Zo simpel is het. Afvoerleidingen zijn binnen no-time weer schoon.

5 / 5

Ik gebruik de rioolcamera's van RIDGID al jaren en ze blijven indruk maken. Het beeld is geweldig en ze zijn gemakkelijk te gebruiken. De duwkabel is stevig en gaat door bochten zonder te knikken. Ik gebruik deze wekelijks samen met RIDGID locators voor camera-onderzoek voorafgaand aan bouwwerkzaamheden en dat werkt perfect.

4 / 5

Ik gebruik al tien jaar RIDGID camera's, locators en monitors. Nooit heb ik een probleem met ze gehad. Tip: maak de duwkabel schoon na elke inspectie. Dan gaan ze jaren mee!

5 / 5

Die PowerClear was echt in no time in huis. Meteen uitgeprobeerd en het ding doet wat ik wil. De gootsteen van mijn klant loopt weer geweldig door.

4 / 5

Gemakkelijk in gebruik. Echt een aanrader om kleine en middelgrote verstoppingen mee op te lossen.

5 / 5

Gebruiksvriendelijk

5 / 5

Werkt geweldig. Maakt het leven een stuk gemakkelijker. Erg makkelijk te bedienen.

5 / 5

Ik heb dit artikel gekocht ter vervanging van mijn oude apparaat en het werkt echt geweldig! Zeer nauwkeurig. Echt een aanrader!

5 / 5

Ik gebruik de Scout nu 3 maanden en het is echt het beste wat er op de markt te verkrijgen is.

4 / 5

Product werkt precies zoals ik gehoopt had, heel fijn in gebruik. Niks op aan te merken.

4 / 5

Camera werkt super goed. Echt zeer scherpe beeldkwaliteit. Echt een super goed product.

5 / 5

Snel en efficiënt

4 / 5

Betaalbaar en doet zijn werk prima. Helemaal Top !

4 / 5

Goed gereedschap is het halve werk

5 / 5

Verstopping in de afvoer van een douche hiermee volledig verholpen.

4 / 5

Makkelijk te bedienen. Werkt goed en snel.

4 / 5

Goede kwaliteit

4 / 5

Ik ben zeer tevreden over dit artikel. Wat ik vooral goed vind: goede kwaliteit en duurzaam.

5 / 5

Top aankoop!

5 / 5

Alleen maar positief. Goede kwaliteit. Echt een aanrader!

5 / 5

Goede inspectie camera, doet waar het voor bestemd is. Helder beeld, zeker een aanrader.

5 / 5

Blij met deze aankoop. Beeldkwaliteit is goed en verlichting is ook een must. Alles werkt naar behoren. Het doet wat het hoort te doen. Alles is eenvoudig te bedienen.

5 / 5

Werkt prima en snel

4 / 5

Zeer goed product, doet wat het moet doen

4 / 5

Makkelijk in gebruik. Stevig.

5 / 5

Eenvoudig in gebruik , compact , mooie lengte van de veer en doeltreffend. Het werkt perfect.

5 / 5

Product is uitstekend, voldoet aan alle verwachtingen.

5 / 5

Goed beeldkwaliteit al meer dan 40 keer gebruikt

5 / 5

Werkt goed. Goed beeld en makkelijk in gebruik.

5 / 5

Top apparaat, is zijn geld waard.

5 / 5

Super tevreden met de snelle levering! Stevig verpakt en goede handleiding erbij.

5 / 5

Perfect beeld en stevige kabel. Sterke accu en goede software.

5 / 5

Uitstekende beeldkwaliteit

5 / 5

Ik ben al 40 jaar loodgieter en had net een nieuwe K-50 gekocht, maar mijn oude K-50 doet het ook nog steeds uitstekend. Het is een zeer duurzame en betrouwbare machine.

5 / 5

Beste machine die ooit is gemaakt

5 / 5

Fantastisch product

5 / 5

De k-50 is de beste machine voor kleinere afvoerleidingen. Zeer veelzijdig en gebruiksvriendelijk.

5 / 5

De K-50 heeft mijn verwachtingen overtroffen. Voor mij is dit de beste ontstoppingsmachine op de markt!!

5 / 5

Handige oplossing als je heel graag met een tablet of mobiel wilt werken.

5 / 5

Mooie mogelijkheid om te gebruiken met de RIDGID mini SeeSnake camerahaspel.

5 / 5

Werk top samen met m'n tablet. Die gebruik ik nu als monitor in combinatie met mijn SeeSnake haspel

5 / 5

Hartstikke handig om je tablet veilig in te bevestigen.

5 / 5

Met deze kickstand gaat het invoeren van de duwkabel van mijn micro camerahaspel echt lekker als ik hem horizontaal neerzet.

4 / 5

Top product!

5 / 5

Ik ben dol op deze camera. Compact en lichtgewicht.

5 / 5

Écht blij met deze set! Ik werk er elke dag mee!

5 / 5

Ik ben al jaren klant bij RIDGIDKollmann.com. Werk nu net een week met deze nieuwe camera. Top ding!

5 / 5

Ik ben blij dat ik de zomeractie heb gekocht

4 / 5

Werkt goed. Precies wat ik nodig heb!

5 / 5

De combinatie van de seesnake compact 2 en de scout heeft mijn werk een stuk makkelijker gemaakt nogmaals dank aan ronald voor de goede service!

4 / 5

Top zomeractie twee top producten voor een goede prijs!

5 / 5

Top produkt!

4 / 5

Laatst opgehaald in Barneveld top service!

4 / 5

Onlangs heb ik deze machine gekocht en ik ben er blij mee

5 / 5

Weer goede service gehad van verkoper Edward!

5 / 5

goed product

4 / 5

Erg blij met deze haspel. Werkt goed!

5 / 5

Top camera

5 / 5

Top aankoop! Werkt goed

4 / 5

Top!

4 / 5

uitleg gehad over de trusense werkt top. lijdingen bekijken is mu een eitje

4 / 5

Test NL

1 / 5

Test

5 / 5

Great!

5 / 5

All is very clear.

5 / 5

The course was really well presented and easy to understand. I have no suggestions.

5 / 5

Very good

5 / 5

Gute Struktur der Unterweisung. Inhalte wurden kurz und prägnant vermittelt

4 / 5

Good course highlighting knowledge and understanding of Vacuum units

5 / 5

Various levels of knowledge given out to help understand the vacuum operative role

5 / 5

Very Informative

4 / 5

The teacher expireerde

5 / 5

4 / 5

Goede training want alles kwam aan bod.

4 / 5

Good

5 / 5

Good

5 / 5

Goede e-learning voor de basis kennis ten behoeve van hogedruk reinigen

5 / 5

Good test of knowledge

5 / 5

Interesting and great when new to the industry

3 / 5

Locatie goed te bereiken vanuit Haarlem met de auto

5 / 5

Evert was topper goed

5 / 5

Goede duidelijke en pragmatische cursus. Efficiënt ingedeeld.

4 / 5

Leerzame cursus als je het niet dagelijks gebruikt

4 / 5

5 / 5

Goed dat deze zaken zo worden opgepakt. Er ontstaan discussie waar zelfs de meest ervaren mensen wat aan hebben.

4 / 5

4 / 5

5 / 5

Prima zo

4 / 5

Misschien nog iets meer opdrachtvormen?

4 / 5

4 / 5

4 / 5

4 / 5

Toch vaak meer praktijk voorbeelden geven. Dit om mensen te laten nadenken over eigen situaties

4 / 5

Meer praktijk gericht

4 / 5

5 / 5

Goed voor elkaar.

4 / 5

4 / 5

Ziet er netjes uit. Als optie de hoofdstuknummers toevoegen in de presentatie. Is nu alleen hoofdstuk 8, maar dan b.v. 8.3 ervan maken

4 / 5

Inhoud toch wat theoretisch

4 / 5

Jammer dat er diverse Sir vraagstukken nog onduidelijkheid over is

4 / 5

1. Goed dat er ruimte is voor discussie, i.p.v. dat je alleen een verhaal/regels moet aanhoren. 2. Misschien is het mooi dat je met de functie test buiten met de machine de punten van de SIR keuring naloop. 3. Verder hebben jullie heel veel kennis van de regels, waardoor onduidelijkheden snel waren verholpen.

4 / 5

Fijne training

5 / 5

goede uit lege en duidelijk

5 / 5

Best training ever!

5 / 5

Well explained.

5 / 5

4 / 5

Everything is ok

4 / 5

Technisch

4 / 5

Training was to short

3 / 5

Recommendation: maybe to have the course in Arabic

5 / 5

Enjoyed the class and. hands-on sessions.

5 / 5

4 / 5

Gerichte opleiding tbm keurmeester

5 / 5

Wordt soms iets teveel gedaan alsof je alle onderdelen al kent en eens keuringen hebt meegemaakt

5 / 5

5 / 5

4 / 5

Graaag voor de Examen iets meer oefenen

4 / 5

Praktijk beter voorbereiden

5 / 5

Veel geleerd veel stof

5 / 5

Prima

5 / 5

Goed uitgelegd lekker relaxed

5 / 5

Goed duidelijk leerzaam

5 / 5

Die Trainer waren sehr gut und man hat sie gut verstanden

4 / 5

Man kann sehr viel lernen

5 / 5

Och bij zufrieden, amber die Sprachbajaere Deutsch auf Arabisch ist nicht gegeten.

5 / 5

Ich bin mit der Schulung unseres Trainers schreef zufrieden es hat alles gepast, auch die Verflegung.

5 / 5

Good organiseert, structuur. Easy to follow, materiaal well explained. Practical training accurate performed. Evert is ein guter Chef. Thomas as well very professional.

5 / 5

It was direct , precise , accurate to the tasks involved and very informative

4 / 5

5 / 5

Goede training omdat alles duidelijk word uitgelegd en je genoeg tijd krijgt om te oefenen met bijvoorbeeld het gebruiken van de hogedruk

3 / 5

5 / 5

Duidelijke uitleg

5 / 5

Top training ever i done!

5 / 5

Zeer goede uitleg. Trainer neemt de tijd voor uitleg van evt. problemen en helpt met duidelijke uitleg omdat op te lossen

5 / 5

Veel interactie en niet alleen maar praten door de trainer

5 / 5

I have learned the application of the equipment to our daily activities. And manage to correct our initial understanding on the pressure and sizes are matter for the activities.

5 / 5

Good

4 / 5

Les materiaal is goed

5 / 5

Veel geleerd

4 / 5

Fine

5 / 5

5 / 5

its perfectly fine

4 / 5

Informatie is duidelijk

5 / 5

Interessante cursus voor je de wagen gaat gebruiken.

4 / 5

Alles ok

5 / 5

Het een hele volledige opleiding is

5 / 5

Voldoende info, mooie wagen

5 / 5

Nuttige info

4 / 5

Goede training

4 / 5

Goede training om weer even de kleine dingen van deze wagen op te pakken. Interresant wat er voor mogelijkheden zijn voor deze wagen.

3 / 5

was intresant

4 / 5

Leuke interessante training

5 / 5

Goed

5 / 5

Geweldig

5 / 5

Goed uitgelegd

5 / 5

Vragen waren duidelijk

5 / 5

Je gebruikers hoort die ook de dagelijkse gang mee maken van vacuüm zuigen in de praktijk en de cursus leider heeft ook tips en tricks die heel handig zijn in de praktijk!

5 / 5

the english version have some wrong words in some of the course. also the question 2 when using the sky tip function of the koks cyclovac pro the right loweringprocedure is: ( the answer is nuber 2 by the answer on the questions, but the course say the right answer is number 1, and the course say many times that you can damage the equipment if you do what the question say is the correct answer.

5 / 5

Beautiful explanation

5 / 5

Gutes training

5 / 5

Good training

5 / 5

Informative

5 / 5

Heb weer wat nieuws geleerd over de ecovac van de vacuüm pomp

3 / 5

Het is zeker een goede training, maar alleen voor leerlingen die net beginnen aan zijn/haar opleiding.

5 / 5

Very well prepared and informative.

5 / 5

Zeer nuttig om alvast een basis te hebben

5 / 5

course has perfect content

5 / 5

To share issues that was encountered by other user (company) with ECO VAC and what are the possible solutions,