Egenproduktion af genbrugsplastEgenproduktion af genbrugsplast
Bestil før kl. 14.00 - så sender vi i dagBestil før kl. 14.00 - så sender vi i dag
Lagerførende på varer til akutopgaverLagerførende på varer til akutopgaver
Gratis beregning og dimensioneringGratis beregning og dimensionering
Error executing template "Designs/Rapido/Paragraph/ParagraphContainer.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_fb3e6da565534afda90e4aa1c5e6d4c9.Execute() in E:\Solutions\S_DW_Lauridsen\lauridsen-live\Files\Templates\Designs\Rapido\Paragraph\ParagraphContainer.cshtml:line 233
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.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 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(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 3 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.ParagraphViewModel> 4 @using Dynamicweb.Frontend 5 6 @helper RenderContent(ItemViewModel item, bool isCarousel = false) 7 { 8 string cardClass = item.GetBoolean("ShowAsCard") ? "paragraph-card" : "grid__cell"; 9 cardClass = Pageview.Device.ToString() != "Tablet" ? cardClass : "grid__cell"; 10 11 if (item.GetList("ContentPositions").SelectedValue == "image-top" || item.GetList("ContentPositions").SelectedValue == "image-centered" || string.IsNullOrEmpty(item.GetList("ContentPositions").SelectedValue)) 12 { 13 <div class="@cardClass"> 14 @RenderImage(item, isCarousel) 15 @RenderHeading(item) 16 @RenderText(item) 17 @RenderModule(item) 18 </div> 19 @RenderButton(item) 20 } 21 22 if (item.GetList("ContentPositions").SelectedValue == "title-top") 23 { 24 <div class="@cardClass"> 25 @RenderHeading(item) 26 @RenderImage(item, isCarousel) 27 @RenderText(item) 28 @RenderModule(item) 29 </div> 30 @RenderButton(item) 31 } 32 33 if (item.GetList("ContentPositions").SelectedValue == "image-left") 34 { 35 <div class="grid"> 36 <div class="grid__col-3"> 37 @RenderImage(item, isCarousel) 38 </div> 39 <div class="grid__col-9"> 40 @RenderHeading(item) 41 @RenderText(item) 42 @RenderModule(item) 43 @RenderButton(item) 44 </div> 45 </div> 46 } 47 48 if (item.GetList("ContentPositions").SelectedValue == "all-centered") 49 { 50 <div class="u-ta-center @cardClass"> 51 @RenderImage(item, isCarousel) 52 @RenderHeading(item) 53 @RenderText(item) 54 @RenderModule(item) 55 </div> 56 @RenderButton(item) 57 } 58 59 if (item.GetList("ContentPositions").SelectedValue == "middle-center") 60 { 61 <div class="u-ta-center u-middle"> 62 <div class="@cardClass"> 63 @RenderImage(item, isCarousel) 64 @RenderHeading(item) 65 @RenderText(item) 66 @RenderModule(item) 67 </div> 68 @RenderButton(item) 69 </div> 70 } 71 72 if (item.GetList("ContentPositions").SelectedValue == "middle-left") 73 { 74 <div class="grid__cell u-middle"> 75 <div class="@cardClass"> 76 @RenderImage(item, isCarousel) 77 @RenderHeading(item) 78 @RenderText(item) 79 @RenderModule(item) 80 </div> 81 @RenderButton(item) 82 </div> 83 } 84 } 85 86 @helper RenderHeading(ItemViewModel item) 87 { 88 if (item.GetBoolean("ShowTitle") != false && !string.IsNullOrEmpty(item.GetString("Title"))) 89 { 90 string headerMargin = item.GetString("Text") != "" && item.GetString("Image") != "" ? "u-margin-bottom" : ""; 91 headerMargin = Model.GetModuleOutput() == "" ? headerMargin : "u-margin-bottom"; 92 string url = item.GetString("Link"); 93 94 if (!String.IsNullOrEmpty(url)) 95 { 96 <a href="@url"> 97 <h1 class="@headerMargin">@item.GetString("Title")</h1> 98 </a> 99 } 100 else 101 { 102 <h1 class="@headerMargin">@item.GetString("Title")</h1> 103 } 104 } 105 } 106 107 @helper RenderButton(ItemViewModel item) 108 { 109 string url = item.GetString("Link"); 110 string linkText = item.GetString("LinkText"); 111 string footerCssClass = ""; 112 string cardFooterClass = item.GetBoolean("ShowAsCard") ? "paragraph-card-footer" : "grid__cell-footer d-block"; 113 cardFooterClass = Pageview.Device.ToString() != "Tablet" ? cardFooterClass : ""; 114 115 if (item.GetList("ContentPositions").SelectedValue == "all-centered" || item.GetList("ContentPositions").SelectedValue == "middle-center") { 116 footerCssClass = "grid--justify-center"; 117 } 118 119 if (!string.IsNullOrEmpty(url) && !string.IsNullOrEmpty(linkText)) 120 { 121 string buttonStyle = !String.IsNullOrEmpty(item.GetList("ButtonDesign").SelectedValue) ? item.GetList("ButtonDesign").SelectedValue : "primary"; 122 123 <div class="@footerCssClass @cardFooterClass"> 124 <div class="u-margin-top u-margin-bottom"> 125 @if (url.Contains("http")) 126 { 127 <a href="@url" class="btn btn--@buttonStyle dw-mod" target="_blank">@linkText</a> 128 } 129 else if (url.Contains("/")) 130 { 131 <a href="@url" class="btn btn--@buttonStyle dw-mod" download>@linkText</a> 132 } 133 else 134 { 135 <a href="@url" class="btn btn--@buttonStyle dw-mod">@linkText</a> 136 } 137 </div> 138 </div> 139 } else { 140 <div class="grid__cell-footer @footerCssClass @cardFooterClass"></div> 141 } 142 } 143 144 @helper RenderText(ItemViewModel item) 145 { 146 if (!string.IsNullOrWhiteSpace(item.GetString("Text"))) 147 { 148 @item.GetString("Text") 149 } 150 } 151 152 @helper RenderModule(ItemViewModel item) 153 { 154 @Model.GetModuleOutput(); 155 } 156 157 @helper RenderImage(ItemViewModel item, bool isCarousel) 158 { 159 if (!string.IsNullOrEmpty(item.GetString("Image")) && item.GetList("ImageStyle").SelectedValue != "background") 160 { 161 string url = item.GetString("Link"); 162 163 <div class="u-margin-bottom"> 164 @if (!String.IsNullOrEmpty(url)) 165 { 166 <a href="@url"> 167 @RenderImageElement(item, isCarousel) 168 </a> 169 } 170 else 171 { 172 @RenderImageElement(item, isCarousel) 173 } 174 </div> 175 } 176 } 177 178 @helper RenderImageElement(ItemViewModel item, bool isCarousel) 179 { 180 string image = item.GetFile("Image") != null ? System.Web.HttpContext.Current.Server.UrlEncode(item.GetFile("Image").Path) : ""; 181 string altText = item.GetString("Title"); 182 string imgCssClass = ""; 183 string imgCrop = !string.IsNullOrEmpty(item.GetList("ImageCrop").SelectedValue) ? item.GetList("ImageCrop").SelectedValue : "5"; 184 string imageBoxWidth = "480"; 185 int imageWidth = Int32.Parse(item.GetList("Width").SelectedValue) < 8 ? 496 : 992; 186 int imageHeight = Int32.Parse(item.GetList("Width").SelectedValue) < 8 ? 380 : 760; 187 string placeHolderImage = "/Files/Images/placeholder.gif"; 188 189 if (item.GetList("ContentPositions").SelectedValue == "image-centered" || item.GetList("ContentPositions").SelectedValue == "all-centered" || item.GetList("ContentPositions").SelectedValue == "middle-center") 190 { 191 imgCssClass = "grid__cell-img--centered"; 192 } 193 194 if (item.GetList("ImageStyle").SelectedValue == "ball") 195 { 196 imgCssClass += " grid__cell-img--ball"; 197 if (!isCarousel) 198 { 199 <img class="grid__cell-img @imgCssClass b-lazy" src="@placeHolderImage" data-src="/Admin/Public/GetImage.ashx?width=@imageBoxWidth&amp;height=@imageBoxWidth&amp;crop=@imgCrop&amp;Compression=75&amp;DoNotUpscale=true&amp;FillCanvas=true&amp;image=@image" alt="@altText"> 200 } 201 else 202 { 203 <img class="grid__cell-img @imgCssClass" src="/Admin/Public/GetImage.ashx?width=@imageBoxWidth&amp;height=@imageBoxWidth&amp;crop=@imgCrop&amp;Compression=75&amp;DoNotUpscale=true&amp;image=@image" alt="@altText"> 204 } 205 } 206 else 207 { 208 string largeImage = "/Admin/Public/GetImage.ashx?width=" + imageWidth + "&amp;height=" + imageHeight + "&amp;crop=" + imgCrop + "&amp;Compression=75&amp;FillCanvas=true&amp;DoNotUpscale=true&amp;image=" + image; 209 string smallImage = "/Admin/Public/GetImage.ashx?width=" + imageWidth/2 + "&amp;height=" + imageHeight/2 + "&amp;crop=" + imgCrop + "&amp;Compression=75&amp;DoNotUpscale=true&amp;FillCanvas=true&amp;image=" + image; 210 211 if (!isCarousel) 212 { 213 <img class="@imgCssClass b-lazy" src="@placeHolderImage" data-src="@largeImage" data-src-small="@smallImage" alt="@altText"> 214 } 215 else 216 { 217 <img class="@imgCssClass" src="@largeImage" alt="@altText"> 218 } 219 } 220 } 221 222 @{ 223 string fontColor = !string.IsNullOrEmpty(Model.Item.GetList("FontColor").SelectedValue) ? "u-" + Model.Item.GetList("FontColor").SelectedValue : ""; 224 string backgroundColor = !string.IsNullOrEmpty(Model.Item.GetList("BackgroundColor").SelectedValue) ? "u-" + Model.Item.GetList("BackgroundColor").SelectedValue + "--bg" : ""; 225 string paragraphContainerClasses = ""; 226 string containerClasses = string.IsNullOrEmpty(Model.Item.GetList("Width").SelectedValue) ? "center-container dw-mod" : ""; 227 string gridClasses = "grid"; 228 string spacingSize = Model.Item.GetList("Spacing") != null && Model.Item.GetList("Spacing").SelectedValue != "" ? Model.Item.GetList("Spacing").SelectedValue : "lg"; 229 bool isCenter = Model.Item.GetBoolean("CenterContent"); 230 231 int columnCount = 0; 232 int paragraphCount = 0; 233 int totalParagraphs = Model.Item.GetItems("Paragraph").Count; 234 int totalSlides = 1; 235 236 if (Model.Item.GetList("Width").SelectedValue == "center") { 237 containerClasses = fontColor + " " + backgroundColor + " center-container"; 238 } 239 240 if (Model.Item.GetList("Width").SelectedValue == "full") 241 { 242 containerClasses = fontColor + " " + backgroundColor; 243 } 244 245 if (Model.Item.GetList("Width").SelectedValue == "combi") 246 { 247 paragraphContainerClasses = @fontColor + " " + @backgroundColor; 248 containerClasses = "center-container"; 249 } 250 251 string fullBackgroundImage = ""; 252 if (Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet" && Model.Item.GetFile("BackgroundImage") != null) 253 { 254 fullBackgroundImage = "background-image:url(/Admin/Public/GetImage.ashx?width=2500&amp;height=1100&amp;crop=0&amp;Compression=85&amp;DoNotUpscale=true&amp;image=" + Model.Item.GetFile("BackgroundImage").Path + ");"; 255 fullBackgroundImage += " background-position: center center; background-size: cover; "; 256 } 257 else if((Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") && Model.Item.GetFile("Mobile_BackgroundImage") != null) 258 { 259 fullBackgroundImage = "background-image:url(/Admin/Public/GetImage.ashx?width=2500&amp;height=1100&amp;crop=5&amp;Compression=85&amp;DoNotUpscale=true&amp;image=" + Model.Item.GetFile("Mobile_BackgroundImage").Path + ");"; 260 fullBackgroundImage += " background-position: center center; background-size: cover; "; 261 } 262 else if (string.IsNullOrEmpty(Model.Item.GetList("BackgroundColor").SelectedValue)) { 263 backgroundColor = "u-color-light--bg"; 264 gridClasses += " "; 265 } 266 267 if (Model.Item.GetBoolean("SeperationLineAfter") && Model.Item.GetList("Width").SelectedValue != "center") { 268 paragraphContainerClasses += " multiple-paragraphs-container--seperation-line-after"; 269 } else if (Model.Item.GetBoolean("SeperationLineAfter")) { 270 containerClasses += " multiple-paragraphs-container--seperation-line-after"; 271 } 272 273 gridClasses += !string.IsNullOrEmpty(Model.Item.GetList("Height").SelectedValue) ? " paragraph-container--height-" + Model.Item.GetList("Height").SelectedValue : ""; 274 275 string containerId = "Paragraph_" + Model.ID; 276 string carouselContainerClass = ""; 277 string carouselSlideClass = ""; 278 279 //Set as carousel 280 if (Model.Item.GetBoolean("EnableCarousel")) { 281 containerClasses += " carousel js-carousel-container"; 282 carouselContainerClass += "carousel__container dw-mod"; 283 carouselSlideClass += "carousel__container__slide dw-mod"; 284 containerId = "Carousel_" + Model.ID; 285 } 286 } 287 288 <section class="multiple-paragraphs-container @paragraphContainerClasses multiple-paragraphs-container--spacing-@spacingSize dw-mod" style="@fullBackgroundImage"> 289 <div class="@containerClasses dw-mod @(isCenter ? "text-center" : "")" id="@containerId"> 290 <div class="@carouselContainerClass"> 291 <div class="@carouselSlideClass"> 292 <div class="@gridClasses"> 293 @foreach (var paragraph in Model.Item.GetItems("Paragraph")) 294 { 295 int columnWidth = Pageview.Device.ToString() != "Mobile" ? Int32.Parse(paragraph.GetList("Width").SelectedValue) : 12; 296 if (columnCount < 12) 297 { 298 columnCount += columnWidth; 299 } 300 else 301 { 302 columnCount = columnWidth; 303 } 304 305 string columnCssClasses = "grid__col-md-" + columnWidth + " grid__col-xs-" + paragraph.GetList("WidthMobile").SelectedValue; 306 string backgroundImage = ""; 307 string imageStyle = paragraph.GetList("ImageStyle").SelectedValue; 308 309 if (paragraph.GetString("WidthMobile") == "hide") 310 { 311 columnCssClasses = "grid__col-md-" + columnWidth + " grid__col-xs--hidden"; 312 } 313 314 if (imageStyle == "background" && paragraph.GetFile("Image") != null) 315 { 316 columnCssClasses += " grid__col--bg"; 317 string cropMode = paragraph.GetList("ImageCrop").SelectedValue != null ? paragraph.GetList("ImageCrop").SelectedValue : "0"; 318 backgroundImage = "background-image:url(/Admin/Public/GetImage.ashx?width=2500&amp;height=1100&amp;crop=" + cropMode + "&amp;Compression=85&amp;DoNotUpscale=true&amp;image=" + paragraph.GetFile("Image").Path + ");"; 319 } 320 321 <div class="@columnCssClasses paragraph-container m-auto" style="@backgroundImage"> 322 @RenderContent(paragraph, Model.Item.GetBoolean("EnableCarousel")) 323 </div> 324 325 paragraphCount++; 326 if (paragraphCount != totalParagraphs) { 327 string breakMarkup = string.Empty; 328 if (columnCount == 12) 329 { 330 breakMarkup = "</div></div><div class=\"" + carouselSlideClass + "\"><div class=\"" + gridClasses + "\">"; 331 totalSlides++; 332 } 333 @breakMarkup 334 } 335 } 336 </div> 337 </div> 338 </div> 339 340 @if (Model.Item.GetBoolean("EnableCarousel") && totalSlides > 1) 341 { 342 <div class="js-carousel-data" data-total-slides="@totalSlides" data-carousel-slide-time="@Model.Item.GetString("SlideTime")"> 343 <div class="carousel-prev-btn dw-mod" onclick="Carousel.GetPreviousSlide(this)"></div> 344 <div class="carousel-next-btn dw-mod" onclick="Carousel.GetNextSlide(this)"></div> 345 </div> 346 } 347 </div> 348 </section>