Error executing template "Designs/ncnielsen/_parsed/pdf-used-machine.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_c3a97d0881cf47bfa5cbf9b89f6086cb.Execute() in D:\dynamicweb.net\Solutions\Gotcha\ncn.dw9.dynamicweb-cms.com\files\Templates\Designs\ncnielsen\_parsed\pdf-used-machine.parsed.cshtml:line 544
   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     
  2     @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
  3     @using Dynamicweb
  4     @using Dynamicweb.Environment
  5     @using Gotcha.NCNielsen.API;
  6     @using Gotcha.NCNielsen.Business;
  7     
  8     <!DOCTYPE html>
  9     <html lang='@GetString("LongLang")'>
 10     @{
 11         string istouch = "False";
 12     
 13         string jsEditDate = System.IO.File.GetLastWriteTime(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/js/ncnielsen.min.js")).ToString();
 14         jsEditDate = jsEditDate.Replace(":", "").Replace(" ", "").Replace("-", "");
 15     
 16         if (GetGlobalValue("Global:Device.IsTablet").ToString() == "True" || @GetGlobalValue("Global:Device.IsMobile").ToString() == "True")
 17         {
 18             istouch = "True";
 19         }
 20     
 21         string templateName = GetGlobalValue("Global:Pageview.LayoutTemplate").Replace("test.", "").Replace(".cshtml", "").Replace(".html", "").Replace(".", "");
 22     
 23         string UMID = "-1";
 24         string productID = "-1";
 25     
 26         if (System.Web.HttpContext.Current.Request.QueryString["UMID"] != null)
 27         {
 28             UMID = System.Web.HttpContext.Current.Request.QueryString["UMID"];
 29         }
 30     
 31         if (System.Web.HttpContext.Current.Request.QueryString["ProductID"] != null)
 32         {
 33             productID = System.Web.HttpContext.Current.Request.QueryString["ProductID"];
 34         }
 35     
 36         string language = "dan";
 37     
 38         if (Pageview.Area.ID == 3)
 39         {
 40             language = "enu";
 41         }
 42         else if (Pageview.Area.ID == 4)
 43         {
 44             language = "sve";
 45         }
 46         else if (Pageview.Area.ID == 5)
 47         {
 48             language = "nor";
 49         }
 50     
 51         ProductModel productModel = ProductFacade.GetProductModel(UMID, language);
 52         string pdfDownloadLink = System.Web.HttpContext.Current.Request.Url.PathAndQuery;
 53     
 54         if (pdfDownloadLink.Contains("?"))
 55         {
 56             pdfDownloadLink += "&";
 57         }
 58         else
 59         {
 60             pdfDownloadLink += "?";
 61         }
 62     
 63         if (UMID != "-1" && productModel.HasProduct)
 64         {
 65             pdfDownloadLink += "layoutTemplate=pdf-used-machine.cshtml&pdf=true&filename=" + productModel.Product.Name.ToLower().Replace(" ", "_").Replace("/", "-") + ".pdf";
 66         }
 67         else if (productID != "-1")
 68         {
 69             Dynamicweb.Ecommerce.Products.ProductService ps = new Dynamicweb.Ecommerce.Products.ProductService();
 70             Dynamicweb.Ecommerce.Products.Product p = ps.GetProductById(productID, "", true);
 71     
 72             pdfDownloadLink += "layoutTemplate=pdf-used-machine.cshtml&pdf=true&filename=" + p.Name.ToLower().Replace(" ", "_").Replace("/", "-") + ".pdf";
 73         }
 74     
 75         string ConvertToBase64Image(string uri)
 76         {   
 77             using var httpClient = new System.Net.Http.HttpClient();
 78             var imageBytes = httpClient.GetByteArrayAsync(uri).Result;                
 79             return $"data:image/png;base64, {Convert.ToBase64String(imageBytes)}";
 80         }
 81     }
 82     <head>
 83         <meta charset='@GetString("CharSet")'>
 84         <title>@GetValue("Title")</title>
 85         @if (System.Web.HttpContext.Current.Request.Url.Host.Contains(".by.gotcha.dk"))
 86         {
 87             <meta name="robots" content="noindex,nofollow">
 88         }
 89         <meta name="viewport" content="width=device-width, initial-scale=1.0">
 90         @GetString("MetaTags")
 91         @if (System.Web.HttpContext.Current.Request.Cookies["ncnielsen-styles"] != null || System.Web.HttpContext.Current.Request.QueryString["oldschoolcss"] != null)
 92         {
 93             <link rel="stylesheet" href="/Files/Templates/Designs/ncnielsen/css/ncnielsen.min.css" id="style1" media="screen">
 94         }
 95         else
 96         {
 97             if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/css/" + templateName + ".critical.css")))
 98             {
 99                 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/css/" + templateName + ".critical.css"))</text>
100             }
101             else
102             {
103                 <link rel="stylesheet" href="/Files/Templates/Designs/ncnielsen/css/ncnielsen.min.css" id="style2" media="screen">
104             }
105         }
106         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/35C9D3_0_0.woff2" as="font" type="font/woff2" crossorigin="">
107         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/35C9D3_0_0.woff" as="font" type="font/woff" crossorigin="">
108         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/35C9D3_1_0.woff2" as="font" type="font/woff2" crossorigin="">
109         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/35C9D3_1_0.woff" as="font" type="font/woff" crossorigin="">
110         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/24cac6da-66aa-48cc-b950-fcadf2b76ec5.woff2" as="font" type="font/woff2" crossorigin="">
111         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/bd659a5c-378a-4055-80a1-69bc94044bac.woff" as="font" type="font/woff" crossorigin="">
112         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/4e27b36d-615c-41eb-baf6-a3095eb585f5.woff2" as="font" type="font/woff2" crossorigin="">
113         <link rel="preload" href="/Files/Templates/Designs/ncnielsen/fonts/9805cfa5-519d-4bfb-82af-f6e07c275f94.woff" as="font" type="font/woff" crossorigin="">
114         @RenderSnippet("csstop")
115     </head>
116     <body data-is-touch="@istouch" data-is-mobile='@GetGlobalValue("Global:Device.IsMobile")' data-is-tablet='@GetGlobalValue("Global:Device.IsTablet")' data-is-desktop='@GetGlobalValue("Global:Device.IsDesktop")' data-is-ios='@GetGlobalValue("Global:Device.IsIOS")' class='preload page-template-@templateName'>
117         <div id="pageWrap">
118             <nav id="navigation">
119                 <a href="/" id="logo">
120                     @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/nc_nielsen_logo.svg")))
121                     {
122                         <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/nc_nielsen_logo.svg"))</text>
123                     }
124                 </a>
125                 @GetValue("DwNavigation(primaryNavigation)")
126                 <a id="burger">
127                     <span class="icon icon-burger">
128                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-burger.svg")))
129                         {
130                             <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-burger.svg"))</text>
131                         }
132                     </span>
133                 </a>
134                 @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Order.OrderLines.TotalProductQuantity")))
135                 {
136                     <span class="cart mobile-cart">
137                         <a>
138                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-cart.svg")))
139                             {
140                                 <span class="icon icon-cart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-cart.svg"))</span>
141                             }
142                             <span class="cart-count">
143                                 @GetString("Ecom:Order.OrderLines.TotalProductQuantity")
144                             </span>
145                         </a>
146                     </span>
147                 }
148                 <ul id="secondaryNavigation">
149                     @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Order.OrderLines.TotalProductQuantity")))
150                     {
151                         <li class="cart">
152                             <a>
153                                 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-cart.svg")))
154                                 {
155                                     <span class="icon icon-cart">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-cart.svg"))</span>
156                                 }
157                                 <span class="cart-count">
158                                     @GetString("Ecom:Order.OrderLines.TotalProductQuantity")
159                                 </span>
160                             </a>
161                         </li>
162                     }
163                     <li>
164                         <a data-modal-trigger="modalLanguages">
165                             @foreach (var wl in GetLoop("WebsiteLanguages"))
166                             {
167                                 if (wl.GetBoolean("IsCurrent"))
168                                 {
169                                     <text>@Translate("Translate_Language_selector_" + wl.GetString("Culture") + "_short")</text>
170                                 }
171                             }
172                         </a>
173                     </li>
174                     <li>
175                         <a href='/Default.aspx?ID=@GetString("Item.Area.LoginPageId")'>
176                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-lock.svg")))
177                             {
178                                 <span class="icon icon-lock">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-lock.svg"))</span>
179                             }
180                         </a>
181                     </li>
182                     <li>
183                         <a data-modal-trigger="modalSearch">
184                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-search.svg")))
185                             {
186                                 <span class="icon icon-search">@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-search.svg"))</span>
187                             }
188                         </a>
189                     </li>
190                 </ul>
191                 <div id="burgerNavigation">
192                     <span class="burger-close">
193                         @Translate("Translate_Modal_Luk")
194                         <span class="icon icon-close">
195                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg")))
196                             {
197                                 <text>@System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg"))</text>
198                             }
199                         </span>
200                     </span>
201                     @GetValue("DwNavigation(burgerNav)")
202                     <div class="social">
203                         <span class="header">@Translate("Translate_Foelg_os")</span>
204                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.Facebook")))
205                         {
206                             <a href='@GetString("Item.Area.Facebook")' class="icon icon-facebook" target="_blank">
207                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg"))
208                             </a>
209                         }
210                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.LinkedIn")))
211                         {
212                             <a href='@GetString("Item.Area.LinkedIn")' class="icon icon-linkedin" target="_blank">
213                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg"))
214                             </a>
215                         }
216                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.YouTube")))
217                         {
218                             <a href='@GetString("Item.Area.YouTube")' class="icon icon-youtube" target="_blank">
219                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg"))
220                             </a>
221                         }
222                     </div>
223                     <div id="burgerBottom">
224                         @if (Pageview.Area.ID == 1)
225                         {
226                             string burgerLoginHref = "/Default.aspx?ID=" + GetString("Item.Area.LoginPageId");
227     
228                             <a href="@burgerLoginHref">
229                                 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-lock.svg")))
230                                 {
231                                     <span class="icon icon-lock">
232                                         @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-lock.svg"))
233                                     </span>
234                                 }
235                             </a>
236                         }
237                         <a data-modal-trigger="modalSearch">
238                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-search.svg")))
239                             {
240                                 <span class="icon icon-search">
241                                     @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-search.svg"))
242                                 </span>
243                             }
244                         </a>
245                         <a data-modal-trigger="modalLanguages">
246                             <span>
247                                 @foreach (var wl in GetLoop("WebsiteLanguages"))
248                                 {
249                                     if (wl.GetBoolean("IsCurrent"))
250                                     {
251                                         <text>@Translate("Translate_Language_selector_" + wl.GetString("Culture") + "_short")</text>
252                                     }
253                                 }
254                             </span>
255                         </a>
256                     </div>
257                 </div>
258             </nav>
259             <header id="header">
260                 <div id="productGalleryImageMain">
261                     @if (UMID != "-1")
262                     {
263                         if (productModel.HasProduct)
264                         {
265                             string approvedValue = productModel.Product.GetSpecificationValue<string>("M-0090550", "-");
266     
267                             <h1 data-test="test">@productModel.Product.Name</h1>
268     
269                             if (productModel.Product.ImageList.Count() > 1)
270                             {
271                                 <div class="gallery">
272                                     @{
273                                         int counter = 0;
274     
275                                         foreach (var img in productModel.Product.ImageList)
276                                         {
277                                             string imagePath = ConvertToBase64Image($"https:{img.Value}");
278     
279                                             if (counter == 0)
280                                             {
281                                                 <div class="gallery-large">
282                                                     <div class="image js-active">
283                                                         <img src='@imagePath' alt='@img.Key'>
284                                                     </div>
285                                                     <div class="image second-image"></div>
286                                                     @if (approvedValue != "-")
287                                                     {
288                                                         <span class="approved">@productModel.Product.Make @approvedValue</span>
289                                                     }
290                                                 </div>
291                                                 <div class="gallery-small js-active">
292                                                     <img src='@imagePath' alt='@img.Key'>
293                                                 </div>
294                                             }
295                                             else
296                                             {
297                                                 <div class="gallery-small">
298                                                     <img src='@imagePath' alt='@img.Key'>
299                                                 </div>
300                                             }
301     
302                                             counter++;
303                                         }
304                                     }
305                                 </div>
306                             }
307                             else if (productModel.Product.ImageList.Count() == 1)
308                             {
309                                 foreach (var img in productModel.Product.ImageList)
310                                 {
311                                     string imagePath = ConvertToBase64Image($"https:{img.Value}");
312     
313                                     <div>
314                                         <img src='@imagePath' alt='@img.Key'>
315                                         @if (approvedValue != "-")
316                                         {
317                                             <span class="approved">@productModel.Product.Make @approvedValue</span>
318                                         }
319                                     </div>
320                                 }
321                             }
322                             else if (productModel.Product.ImageList.Count() == 0)
323                             {
324                                 <div>
325                                     <img src="/Files/Images/ncnielsen/used_machines/used_machines_fallback.jpg" alt="">
326                                     @if (approvedValue != "-")
327                                     {
328                                         <span class="approved">@productModel.Product.Make @approvedValue</span>
329                                     }
330                                 </div>
331                             }
332                         }
333                         else
334                         {
335                             <h1>@Translate("Translate_Used_machine_not_found")</h1>
336                             <div>
337                                 <img src="http://placehold.it/690x516?text=@Translate(" translate_used_machine_not_found")"="" alt="No product">
338                             </div>
339                         }
340                     }
341                     else
342                     {
343                         <text>@RenderSnippet("ChosenUsedMachineGallery")</text>
344                     }
345                 </div>
346                 <div class="content">
347                     @if (productModel.HasProduct)
348                     {
349                         <a href="@pdfDownloadLink" target="_blank" id="usedMachineSavePdf">
350                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-pdf.svg")))
351                             {
352                                 <span class="icon icon-pdf">
353                                     @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-pdf.svg"))
354                                 </span>
355                             }
356                             <span class="text">
357                                 @Translate("Translate_Gem_som_PDF")
358                             </span>
359                         </a>
360                     }
361                     @if (UMID != "-1")
362                     {
363                         if (productModel.HasProduct)
364                         {
365                             <div class="specifications">
366                                 <span class="header">@Translate("Translate_Specifikationer")</span>
367                                 <ul>
368                                     <li class="specification">
369                                         <span class="label">@Translate("Translate_Intern_nummer")</span>
370                                         <span class="value">@productModel.Product.Id</span>
371                                     </li>
372                                     <li class="specification">
373                                         <span class="label">@Translate("Translate_Aargang")</span>
374                                         <span class="value">@productModel.Product.Year</span>
375                                     </li>
376                                     @if (productModel.Product.SpecificationList.Count() > 10)
377                                     {
378                                         for (var a = 0; a < 10; a++)
379                                         {
380                                             if (
381                                                 @productModel.Product.SpecificationList[a].Id != "M-0090570" &&
382                                                 @productModel.Product.SpecificationList[a].Id != "M-0090565"
383                                             )
384                                             {
385                                                 <li class="specification"><span class="label">@productModel.Product.SpecificationList[a].Label</span> <span class="value">@productModel.Product.SpecificationList[a].Value</span></li>
386                                             }
387                                         }
388                                     }
389                                     else
390                                     {
391                                         foreach (var spec in productModel.Product.SpecificationList)
392                                         {
393                                             if (
394                                                 spec.Id != "M-0090570" &&
395                                                 spec.Id != "M-0090565"
396                                             )
397                                             {
398                                                 <li class="specification"><span class="label">@spec.Label</span> <span class="value">@spec.Value</span></li>
399                                             }
400                                         }
401                                     }
402                                 </ul>
403                                 @if (productModel.Product.SpecificationList.Count() > 10)
404                                 {
405                                     <div>
406                                         <a id="allSpecificationsLink" class="button button-inline">@Translate("Translate_Se_alle_specifikationer")</a>
407                                     </div>
408                                 }
409                                 <a id="usedMachineRequestButton" class="button button-primary">
410                                     <span class="text">@Translate("Translate_Prisforespoergsel")</span>
411                                 </a>
412                             </div>
413                             <div id="usedMachinesRequestForm">
414                                 @{
415                                     int formParagraphID = -1;
416     
417                                     try
418                                     {
419                                         formParagraphID = Convert.ToInt32(Pageview.Area.Item["UsedMachinesRequestParagraph"]);
420                                     }
421                                     catch
422                                     {
423     
424                                     }
425     
426                                     if (formParagraphID != -1)
427                                     {
428                                         <text>@RenderParagraphContent(formParagraphID)</text>
429                                     }
430                                 }
431                                 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg")))
432                                 {
433                                     <span class="icon icon-close">
434                                         @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg"))
435                                     </span>
436                                 }
437                             </div>
438                         }
439                         else
440                         {
441                             <div class="specifications">
442     
443                             </div>
444                         }
445                     }
446                     else
447                     {
448                         <text>@RenderSnippet("ChosenUsedMachineHeaderSpecifications")</text>
449                         <div id="usedMachinesRequestForm">
450                             @{
451                                 int formParagraphID = -1;
452     
453                                 try
454                                 {
455                                     formParagraphID = Convert.ToInt32(Pageview.Area.Item["UsedMachinesRequestParagraph"]);
456                                 }
457                                 catch
458                                 {
459     
460                                 }
461     
462                                 if (formParagraphID != -1)
463                                 {
464                                     <text>@RenderParagraphContent(formParagraphID)</text>
465                                 }
466                             }
467                             @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg")))
468                             {
469                                 <span class="icon icon-close">
470                                     @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg"))
471                                 </span>
472                             }
473                         </div>
474                     }
475                     <div class="social">
476                         <a href='tel:@Translate("Translate_Brugte_maskiner_kontakt_telefonnr")' class="button button-secondary">
477                             <span class="text">@Translate("Translate_Kontakt_os_paa")</span>
478                         </a>
479                         <span class="header">Følg os</span>
480                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg")) && !string.IsNullOrWhiteSpace(Pageview.Area.Item["Facebook"].ToString()))
481                         {
482                             <a href='@Pageview.Area.Item["Facebook"]' class="icon icon-facebook" target="_blank">
483                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg"))
484                             </a>
485                         }
486                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg")) && !string.IsNullOrWhiteSpace(Pageview.Area.Item["LinkedIn"].ToString()))
487                         {
488                             <a href='@Pageview.Area.Item["LinkedIn"]' class="icon icon-linkedin" target="_blank">
489                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg"))
490                             </a>
491                         }
492                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg")) && !string.IsNullOrWhiteSpace(Pageview.Area.Item["YouTube"].ToString()))
493                         {
494                             <a href='@Pageview.Area.Item["YouTube"]' class="icon icon-youtube" target="_blank">
495                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg"))
496                             </a>
497                         }
498                     </div>
499                 </div>
500             </header>
501             @if (UMID != "-1")
502             {
503                 if (productModel.HasProduct)
504                 {
505                     if (productModel.Product.SpecificationList.Count() > 10)
506                     {
507                         <section id="allSpecifications" class="section section-white">
508                             <div class="content">
509                                 <div class="specifications">
510                                     <h2>@Translate("Translate_Alle_specifikationer")</h2>
511                                     <ul>
512                                         <li class="specification">
513                                             <span class="label">@Translate("Translate_Intern_nummer")</span>
514                                             <span class="value">@productModel.Product.Id</span>
515                                         </li>
516                                         <li class="specification">
517                                             <span class="label">@Translate("Translate_Aargang")</span>
518                                             <span class="value">@productModel.Product.Year</span>
519                                         </li>
520                                         @foreach (var spec in productModel.Product.SpecificationList)
521                                         {
522                                             if (
523                                                 spec.Id != "M-0090570" &&
524                                                 spec.Id != "M-0090565"
525                                             )
526                                             {
527                                                 <li class="specification"><span class="label">@spec.Label</span> <span class="value">@spec.Value</span></li>
528                                             }
529                                         }
530                                     </ul>
531                                     <a id="usedMachineRequestButton" class="button button-primary">
532                                         <span class="text">@Translate("Translate_Prisforespoergsel")</span>
533                                     </a>
534                                 </div>
535                             </div>
536                         </section>
537                     }
538                 }
539     
540                 string templatename = GetGlobalValue("Global:Pageview.LayoutTemplate").Replace(".cshtml", "").ToLower();
541     
542                 if (templatename == "pdf-used-machine")
543                 {
544                     double dHalfWay = Convert.ToDouble(productModel.Product.SpecificationList.Count() - 2) / 2;
545                     int halfWay = (int)Math.Ceiling(dHalfWay);
546                     halfWay = halfWay;
547     
548                     <section id="pdfSpecifications" class="section section-white">
549                         <div class="content">
550                             <div class="specifications">
551                                 <ul>
552                                     <li class="specification">
553                                         <span class="label">@Translate("Translate_Intern_nummer")</span>
554                                         <span class="value">@productModel.Product.Id</span>
555                                     </li>
556                                     <li class="specification">
557                                         <span class="label">@Translate("Translate_Aargang")</span>
558                                         <span class="value">@productModel.Product.Year</span>
559                                     </li>
560                                     @for (int a = 0; a < halfWay; a++)
561                                     {
562                                         <li class="specification">
563                                             <span class="label">@productModel.Product.SpecificationList[a].Label</span>
564                                             <span class="value">@productModel.Product.SpecificationList[a].Value</span>
565                                         </li>
566                                     }
567                                 </ul>
568                                 <ul>
569                                     @for (int a = halfWay; a < productModel.Product.SpecificationList.Count(); a++)
570                                     {
571                                         <li class="specification">
572                                             <span class="label">@productModel.Product.SpecificationList[a].Label</span>
573                                             <span class="value">@productModel.Product.SpecificationList[a].Value</span>
574                                         </li>
575                                     }
576                                 </ul>
577                             </div>
578                         </div>
579                     </section>
580                 }
581             }
582             else
583             {
584                 <text>@RenderSnippet("UsedMachineAllSpecifications")</text>
585             }
586             <div id="ecomContent">@GetValue("DwContent(ecomContent)")</div>
587             @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
588     @using Dynamicweb
589     @using Dynamicweb.Environment
590     
591     
592     
593     @SnippetStart("csstop")
594     <style>
595         @@page {
596             size: A4;   
597         }
598     
599         * {
600             box-sizing: border-box;
601         }
602     
603         html {
604             margin: 0;
605             min-height: 100%;
606             position: relative;
607             background: transparent;
608         }
609     
610         body {
611             width: 100%;
612             height: 100%;
613             background: transparent;
614             margin: 0;
615             color: #000;
616             font-family: Arial, Helvetica, sans-serif;
617             position: relative;
618         }
619     
620         body:before {
621             content: none;
622         }
623     
624         #pageWrap {
625             overflow: hidden;
626             width: 100%;
627             height: 100%;
628             position: relative;
629             padding: 2cm 2cm;
630             background: transparent;
631         }
632     
633         .content .specifications .header {
634             line-height: 1.5em;
635             background: transparent;
636         }
637     
638         #navigation,
639         #modalLanguages,
640         #modalSearch,
641         #header:before,
642         #header:after,
643         #header .specifications *,
644         #usedMachineRequestButton,
645         .gallery .gallery-small,
646         #usedMachineRequestButton,
647         #usedMachinesRequestForm,
648         #usedMachineSavePdf,
649         #allSpecifications h2,
650         .social,
651         #footerNavigation,
652         #footer:before,
653         #footer br,
654         #footer .social,
655         #allSpecifications,
656         #ecomContent {
657             display: none;
658         }
659     
660         #burgerNav:after,
661         #burgerNavigation ul,
662         .section.section-white {
663             background: transparent;
664         }
665     
666         #header {
667             height: auto;
668             /*margin: 2cm 2cm 0.5cm 2cm;*/
669             padding: 0;
670             background: transparent;
671         }
672     
673         .section {
674             /*margin: 0 2cm;*/
675             background: transparent;
676         }
677     
678         #header .specifications .header {
679             display: block;
680             background: transparent;
681         }
682     
683         #header .header,
684         h1 {
685             color: #000;
686             font-size: 24pt;
687             display: block;
688             font-family: Arial, Helvetica, sans-serif;
689             background: transparent;
690         }
691     
692         #header .content,
693         .section {
694             text-align: left;
695             background: transparent;
696         }
697     
698         .section,
699         .gallery {
700             padding: 0;
701             background: transparent;
702         }
703     
704         #productGalleryImageMain {
705             width: calc(100% - 4cm);
706             margin-bottom: 5mm;
707             background: transparent;
708         }
709     
710             #productGalleryImageMain h1 {
711                 margin-bottom: 5mm;
712             background: transparent;
713             }
714     
715         #productGalleryImageMain {
716             width: calc(100% - 4cm);
717             background: transparent;
718         }
719     
720         #productGalleryImageMain > div {
721             padding: 0;
722             background: transparent;
723             height: auto;
724             width: auto;
725             max-width: 100%;
726             max-height: 142mm;
727         }
728     
729         .gallery .gallery-large {
730             /*width: 100%;*/
731             height: auto;
732             width: auto;
733             max-width: 100%;
734             max-height: 142mm;
735         }
736     
737             #productGalleryImageMain img,
738             .gallery .gallery-large img {
739                 height: auto;
740                 width: auto;
741                 max-width: 100%;
742                 max-height: 142mm;
743             }
744     
745         .image {
746             display: block;
747         }
748     
749         #pdfSpecifications ul {
750             width: 50%;
751             float: left;
752             padding: 0;
753             font-size: 11pt;
754             line-height: 1.08;
755             margin-left: -5mm;
756             margin-right: -5mm;
757             background: transparent;
758         }
759     
760             #pdfSpecifications ul + ul {
761                 margin-left: 10mm;
762                 background: transparent;
763             }
764     
765         #pdfSpecifications li {
766             display: block;
767             width: 100%;
768             float: left;
769             padding-bottom: 2mm;
770             padding-left: 5mm;
771             padding-right: 5mm;
772             overflow: hidden;
773             background: transparent;
774         }
775     
776         #pdfSpecifications .label {
777             display: inline-block;
778             float: left;
779             background: transparent;
780         }
781     
782         #pdfSpecifications .value {
783             display: inline-block;
784             float: right;
785             background: transparent;
786         }
787     
788         #footer {
789             background: none;
790             font-size: 7pt;
791             height: 7mm;
792             position: absolute;
793             top: 230mm;
794             /*bottom: 1cm;*/
795             left: auto;
796             right: 2cm;
797             overflow: hidden;
798             line-height: 1.3;
799             color: #000;
800             background: transparent;
801         }
802     
803             #footer .content {
804                 display: block;
805                 margin: 0;
806                 width: 100%;
807                 max-width: none;
808                 background: transparent;
809             }
810     
811             #footer .header {
812                 display: inline;
813                 text-transform: none;
814                 font-size: 7pt;
815                 padding: 0;
816                 margin: 0;
817                 line-height: 1.3;
818                 color: #000;
819                 font-family: Arial, Helvetica, sans-serif;
820                 font-weight: bold;
821                 background: transparent;
822             }
823     
824                 #footer .header:after {
825                     content: ":";
826                     display: inline;
827                     position: static;
828                     height: auto;
829                     width: auto;
830                     background: none;
831                     bottom: auto;
832                     left: auto;
833                     font-family: Arial, Helvetica, sans-serif;
834                     font-weight: bold;
835                     background: transparent;
836                 }
837     
838             #footer p {
839                 display: inline;
840                 background: transparent;
841             }
842     
843         #footer-logo {
844             position: absolute;
845             top: 230mm;
846             /*bottom: 1cm;*/
847             left: 2cm;
848             width: 39.2mm;
849             height: 7mm;
850             z-index: 999999;
851             background: transparent;
852         }
853     
854             #footer-logo img {
855                 width: 100%;
856                 height: 100%;
857                 background: transparent;
858             }
859     </style>
860     @SnippetEnd("csstop")
861     
862     @SnippetStart("UsedMachineBeforeFooter")
863     <div id="footer-logo">
864         <img src="/files/templates/designs/ncnielsen/images/nc_nielsen_logo_300ppi.png">
865     </div>
866     @SnippetEnd("UsedMachineBeforeFooter")
867     <script src="/Files/Templates/Designs/ncnielsen/js/html2pdf.bundle.min.js" async=""></script>
868     <script>
869         let intervalCounter = 0;
870     
871         let _checkReadyState = setInterval(function() {
872             intervalCounter++;
873     
874             if ((document.readyState == 'complete' || document.readyState == 'loaded' || document.readyState == 'interactive') && typeof html2pdf) {
875                 setupPrint();
876                 clearInterval(_checkReadyState);
877             }
878     
879             if (intervalCounter > 100) {
880                 clearInterval(_checkReadyState);
881             }
882         }, 100);
883     
884         function setupPrint() {
885             const element = document.getElementById('pageWrap');
886             const options = {
887                 margin: 2,
888                 fileName: 'Used machine',
889                 jsPDF: { unit: 'cm', format: 'a4', orientation: 'portrait' }
890             }
891     
892             if (element) {            
893                 html2pdf(element);
894             }
895         }
896     </script>
897             @RenderSnippet("UsedMachineBeforeFooter")
898             <footer id="footer" class="section section-greyextradark">
899                 <div class="content">
900                     <nav id="footerNavigation">
901                         <span class="header">Menu</span>
902                         @GetValue("DwNavigation(footerNav)")
903                     </nav>
904                     @foreach (var departmentItem in GetLoop("Item.Area.Departments"))
905                     {
906                         @SnippetStart("ContactHeaderDepartments")
907                         <li class="department">
908                             <h2>@departmentItem.GetString("Item.Area.Departments.Header")</h2>
909                             <ul class="infoList">
910                                 <li class="info">
911                                     @departmentItem.GetString("Item.Area.Departments.Name")
912                                     <br>
913                                     @departmentItem.GetString("Item.Area.Departments.Address")
914                                     <br>
915                                     @departmentItem.GetString("Item.Area.Departments.Zipcode") @departmentItem.GetString("Item.Area.Departments.City")
916                                 </li>
917                                 <li class="info">
918                                     Tlf.: <a href='tel:@departmentItem.GetString("Item.Area.Departments.Phone")'>@departmentItem.GetString("Item.Area.Departments.Phone")</a>
919                                     <br>
920                                     <a href='mailto:@departmentItem.GetString("Item.Area.Departments.Email")'>@departmentItem.GetString("Item.Area.Departments.Email")</a>
921                                 </li>
922                             </ul>
923                         </li>
924                         @SnippetEnd("ContactHeaderDepartments")
925                         <div id="@departmentItem.GetString(" item.area.departments.id_1")"="">
926                             <span class="header">@departmentItem.GetString("Item.Area.Departments.Header")</span>
927                             <p>
928                                 @departmentItem.GetString("Item.Area.Departments.Name")
929                                 <br>
930                                 @departmentItem.GetString("Item.Area.Departments.Address")
931                                 <br>
932                                 @departmentItem.GetString("Item.Area.Departments.Zipcode") @departmentItem.GetString("Item.Area.Departments.City")
933                                 <br>
934                                 @departmentItem.GetString("Item.Area.Departments.Phone")
935                             </p>
936                         </div>
937                     }
938                 </div>
939                 <div class="content">
940                     <div class="social">
941                         <span class="header">@Translate("Translate_Foelg_os")</span>
942                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.Facebook")))
943                         {
944                             <a href='@GetString("Item.Area.Facebook")' class="icon icon-facebook" target="_blank">
945                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-facebook.svg"))
946                             </a>
947                         }
948                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.LinkedIn")))
949                         {
950                             <a href='@GetString("Item.Area.LinkedIn")' class="icon icon-linkedin" target="_blank">
951                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-linkedin.svg"))
952                             </a>
953                         }
954                         @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg")) && !string.IsNullOrWhiteSpace(GetString("Item.Area.YouTube")))
955                         {
956                             <a href='@GetString("Item.Area.YouTube")' class="icon icon-youtube" target="_blank">
957                                 @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-youtube.svg"))
958                             </a>
959                         }
960                     </div>
961                 </div>
962             </footer>
963         </div>
964         <div id="pageOverlay"></div>
965         <div id="modalOverlay"></div>
966         <div id="modalSearch" class="modal">
967             <div class="modal-content-wrap">
968                 <div class="content">
969                     <form method="get" action='/Default.aspx?Id=@GetString("Item.Area.SearchPageId")'>
970                         <div class="input-wrap input-wrap-large">
971                             <input type="hidden" name="id" value='@GetString("Item.Area.SearchPageId")'>
972                             <input type="text" name="q" placeholder='@Translate("Translate_Soeg_Placeholder")'>
973                             <button type="submit" class="button button-primary"><span class="text">@Translate("Translate_Soeg")</span></button>
974                         </div>
975                     </form>
976                 </div>
977                 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg")))
978                 {
979                     <span class="icon icon-close button-close">
980                         @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg"))
981                     </span>
982                 }
983             </div>
984         </div>
985         <div id="modalLanguages" class="modal">
986             <div class="modal-content-wrap">
987                 <div class="content">
988                     @foreach (var wl in GetLoop("WebsiteLanguages"))
989                     {
990                         if (wl.GetBoolean("IsCurrent"))
991                         {
992                             <span class="language-current">
993                                 @Translate("Translate_Language_selector_" + wl.GetString("Culture"))
994                             </span>
995                         }
996                         else if (!string.IsNullOrWhiteSpace(wl.GetString("PrimaryDomain")))
997                         {
998                             string languageURL = "https://" + wl.GetString("PrimaryDomain");
999     
1000                             @SnippetStart("OtherLanguages")
1001                             <a class="language-other" href='@languageURL'><span>@Translate("Translate_Language_selector_" + wl.GetString("Culture") + "_short")</span></a>
1002                             @SnippetEnd("OtherLanguages")
1003                         }
1004                     }
1005                     @RenderSnippet("OtherLanguages")
1006                 </div>
1007                 @if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg")))
1008                 {
1009                     <span class="icon icon-close button-close">
1010                         @System.IO.File.ReadAllText(System.Web.HttpContext.Current.Server.MapPath("/files/templates/designs/ncnielsen/images/icon-close.svg"))
1011                     </span>
1012                 }
1013             </div>
1014         </div>
1015         @RenderSnippet("contentbottom")
1016         <script src='/Files/Templates/Designs/ncnielsen/js/ncnielsen.min.js?v=@jsEditDate' async="" defer=""></script>
1017         @if (System.Web.HttpContext.Current.Request.Cookies["ncnielsen-styles"] == null)
1018         {
1019             System.Web.HttpContext.Current.Response.Cookies["ncnielsen-styles"].Value = "1";
1020             System.Web.HttpContext.Current.Response.Cookies["ncnielsen-styles"].Expires = DateTime.Now.AddDays(100);
1021     
1022             <noscript id="deferred-styles">
1023                 <link rel="stylesheet" href="/files/templates/designs/ncnielsen/css/ncnielsen.min.css" media="screen">
1024             </noscript>
1025             <script>
1026                 var loadDeferredStyles = function () {
1027                     var addStylesNode = document.getElementById("deferred-styles");
1028                     var replacement = document.createElement("div");
1029     
1030                     replacement.innerHTML = addStylesNode.textContent;
1031                     document.body.appendChild(replacement)
1032                     addStylesNode.parentElement.removeChild(addStylesNode);
1033                 };
1034     
1035                 var raf = requestAnimationFrame || mozRequestAnimationFrame || webkitRequestAnimationFrame || msRequestAnimationFrame;
1036     
1037                 if (raf) raf(function () { window.setTimeout(loadDeferredStyles, 0); });
1038                 else window.addEventListener('load', loadDeferredStyles);
1039             </script>
1040         }
1041     </body>
1042     </html>
1043