Error executing template "Designs/GlobalCarLeasing/_parsed/MobileImport-dev.parsed.cshtml"
System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
at System.Xml.XmlTextReaderImpl.OpenUrlDelegate(Object xmlResolver)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.CompressedStack.Run(CompressedStack compressedStack, ContextCallback callback, Object state)
at System.Xml.XmlTextReaderImpl.OpenUrl()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at CompiledRazorTemplates.Dynamic.RazorEngine_56ada662dbc0412eae69a0e78ce66b6b.FetchApiData(String username, String password) in E:\dynamicweb.net\solutions\Clienti\globalcarleasing.dw9.dynamicweb-cms.com\files\Templates\Designs\GlobalCarLeasing\_parsed\MobileImport-dev.parsed.cshtml:line 483
at CompiledRazorTemplates.Dynamic.RazorEngine_56ada662dbc0412eae69a0e78ce66b6b.Execute() in E:\dynamicweb.net\solutions\Clienti\globalcarleasing.dw9.dynamicweb-cms.com\files\Templates\Designs\GlobalCarLeasing\_parsed\MobileImport-dev.parsed.cshtml:line 791
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.b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <meta name="viewport" content="width=device-width minimum-scale=1.0 maximum-scale=1.0 user-scalable=no">
6 <link rel='shortcut icon' type='image/x-icon' href='/Files/Templates/Designs/GlobalCarLeasing/favicon.ico'>
7
8 <link rel="preload" href="/Files/Templates/Designs/GlobalCarLeasing/assets/fonts/hco_fonts/hco_fonts.css" as="style">
9 <link rel="preload" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/main.css?v5" as="style">
10 <link rel="preload" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mainnav.css?v1.4" as="style">
11 <link rel="preload" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mmenu/mobile-menu.css?v1.3" as="style">
12 <link rel="preload" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mmenu/mmenu.css" as="style">
13
14 <link rel="preload" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" as="style" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
15
16 <title><!--@Snippet(Title)-->@GetValue("Title")</title>
17 @GetValue("MetaTags")
18 @GetValue("CopyRightNotice")
19
20 <!--@SnippetStart(Title)--><!--@SnippetEnd(Title)-->
21 <script type="application/ld+json">
22 {
23 "@@context": "http://schema.org",
24 "@@type": "LocalBusiness",
25 "name" : "Global Car Leasing",
26 "image" : "http://globalcarleasing.dw9.dynamicweb-cms.com/Files/Images/Global-Car-Leasing-Logo.png",
27 "url": "http://www.globalcarleasing.dk",
28 "logo": "http://globalcarleasing.dw9.dynamicweb-cms.com/Files/Images/Global-Car-Leasing-Logo.png",
29 "description": "",
30 "telephone": "+4596200900",
31 "address": {
32 "@@type": "PostalAddress",
33 "addressLocality": "Aalborg",
34 "postalCode": "9000",
35 "addressRegion": "ON",
36 "streetAddress": "Råens Palæ, Råensvej"
37 },
38 "openingHours": [
39 "Mo-Fr 08:00-16:00"
40 ]
41 }
42 </script>
43 <style>
44 .is-affixed .sidebar__inner {
45 padding-left: 7px;
46 }
47
48 #scrollToTop {
49 width: 60px;
50 background: #274b5d;
51 height: 60px;
52 position: fixed;
53 bottom: 30px;
54 right: 30px;
55 border-radius: 3px;
56 opacity: 0;
57 transition: all .3s ease;
58 font-family: "Font Awesome 5 Free";
59 font-weight: 900;
60 display: flex;
61 justify-content: center;
62 align-items: center;
63 z-index: 10;
64 }
65
66 #scrollToTop:before {
67 content: "\f062";
68 font-size: 34px;
69 text-shadow: 1px 1px 10px #102a38;
70 color: #FFF;
71 }
72
73 #scrollToTop:hover {
74 cursor: pointer;
75 background-color: #163140;
76 box-shadow: 0px 0px 10px 0px rgba(22, 49, 64, 0.26);
77 }
78 </style>
79
80 @{
81 var countryCode = GetGlobalValue("Global:Area.Culture.CountryCode");
82
83 if (countryCode == "DK") {
84 countryCode = "DA";
85 } else if (countryCode == "GB") {
86 countryCode = "EN";
87 }
88 }
89
90 <!--@Snippet(header)-->
91
92 @{
93 string GoogleAnalyticsID = GetString("Item.Area.Google_Analytics_ID");
94 bool HasGoogleAnalyticsID = !string.IsNullOrEmpty(GoogleAnalyticsID);
95
96 string GoogleTagManagerID = GetString("Item.Area.Google_Tag_Manager_ID");
97 bool HasGoogleTagManagerID = !string.IsNullOrEmpty(GoogleTagManagerID);
98
99 string FacebookPixelID = GetString("Item.Area.Facebook_Pixel_ID");
100 bool HasFacebookPixelID = !string.IsNullOrEmpty(FacebookPixelID);
101
102 string Hotjar_ID = GetString("Item.Area.Hotjar_ID");
103 bool HasHotjar_ID = !string.IsNullOrEmpty(Hotjar_ID);
104
105 var AnalyticsScript = GetString("Item.Area.Analytics");
106 var HasAnalyticsScript = !string.IsNullOrEmpty(AnalyticsScript);
107
108 bool CookiesEnabled = GetBoolean("Item.Area.Enable_Cookieinformation");
109 }
110
111 <script>
112
113 window.dataLayer = window.dataLayer || [];
114
115 function gtag(){ dataLayer.push(arguments); }
116
117 // Set default consent to 'denied' as a placeholder
118
119 // Determine actual values based on customer's own requirements
120
121 gtag('consent', 'default', {
122
123 'ad_storage': 'denied',
124
125 'ad_user_data': 'denied',
126
127 'ad_personalization': 'denied',
128
129 'analytics_storage': 'denied',
130
131 'wait_for_update': 500
132
133 });
134
135 gtag('set', 'ads_data_redaction', true);
136
137 </script>
138
139 @if (HasGoogleTagManagerID)
140 {
141 <!-- Google Tag Manager -->
142 <script>
143 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
144 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
145 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
146 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
147 })(window, document, 'script', 'dataLayer', '@(GoogleTagManagerID)');
148 </script>
149 <!-- End Google Tag Manager -->
150 }
151
152 <script id="CookieConsent" type="text/javascript" data-culture="@countryCode" src="https://policy.app.cookieinformation.com/uc.js" data-gcm-version="2.0"></script>
153
154 @if (HasGoogleAnalyticsID)
155 {
156 <!-- Global site tag (gtag.js) - Google Analytics -->
157 <script>
158 @if (CookiesEnabled)
159 {
160 <text>window.addEventListener('CookieInformationConsentGiven', function () { if (CookieInformation.getConsentGivenFor('cookie_cat_statistic')) { (function () {</text>
161 }
162 var script = document.createElement('script'),
163 head = document.getElementsByTagName('head')[0];
164 script.src = 'https://www.googletagmanager.com/gtag/js?id=@(GoogleAnalyticsID)';
165 head.appendChild(script);
166
167 window.dataLayer = window.dataLayer || [];
168 function gtag(){dataLayer.push(arguments);}
169 gtag('js', new Date());
170 gtag('config', '@(GoogleAnalyticsID)');
171 @if (CookiesEnabled)
172 {
173 <text>})();}}, false);</text>
174 }
175 </script>
176 }
177
178
179 @if (HasFacebookPixelID)
180 {
181 <!-- Facebook Pixel Code -->
182 <script>
183 @if (CookiesEnabled)
184 {
185 <text>window.addEventListener('CookieInformationConsentGiven', function () { if (CookieInformation.getConsentGivenFor('cookie_cat_statistic')) { (function () {</text>
186 }
187 !function(f,b,e,v,n,t,s)
188 {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
189 n.callMethod.apply(n,arguments):n.queue.push(arguments)};
190 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
191 n.queue=[];t=b.createElement(e);t.async=!0;
192 t.src=v;s=b.getElementsByTagName(e)[0];
193 s.parentNode.insertBefore(t,s)}(window, document,'script',
194 'https://connect.facebook.net/en_US/fbevents.js');
195 fbq('init', '@(FacebookPixelID)');
196 fbq('track', 'PageView');
197 @if (CookiesEnabled)
198 {
199 <text>})();}}, false);</text>
200 }
201 </script>
202 <noscript>
203 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=@(FacebookPixelID)&ev=PageView&noscript=1">
204 </noscript>
205 <!-- End Facebook Pixel Code -->
206 }
207
208 @if (HasHotjar_ID) {
209 <script>
210 @if (CookiesEnabled)
211 {
212 <text>window.addEventListener('CookieInformationConsentGiven', function () { if (CookieInformation.getConsentGivenFor('cookie_cat_statistic')) { (function () {</text>
213 }
214 <!-- Hotjar Tracking Code for https://www.globalcarleasing.dk/ -->
215
216 (function(h,o,t,j,a,r){
217 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
218 h._hjSettings={hjid:@(Hotjar_ID),hjsv:6};
219 a=o.getElementsByTagName('head')[0];
220 r=o.createElement('script');r.async=1;
221 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
222 a.appendChild(r);
223 })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
224
225 @if (CookiesEnabled)
226 {
227 <text>})();}}, false);</text>
228 }
229 </script>
230 }
231
232
233 @if (HasAnalyticsScript) {
234 @AnalyticsScript
235 }
236
237 <style>
238 .secondary-navigation ul > li.active > a {
239 font-weight: 600;
240 color: #000;
241 }
242 </style>
243
244 <link type="text/css" rel="stylesheet" href="/Files/Templates/Designs/GlobalCarLeasing/assets/fonts/hco_fonts/hco_fonts.css">
245 <link type="text/css" rel="stylesheet" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/main.css?v5">
246 <link type="text/css" rel="stylesheet" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mainnav.css?v1.4">
247 <link type="text/css" rel="stylesheet" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mmenu/mobile-menu.css?v1.3">
248 <link type="text/css" rel="stylesheet" href="/Files/Templates/Designs/GlobalCarLeasing/assets/stylesheets/mmenu/mmenu.css">
249 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
250 @GetValue("Stylesheets")
251 @GetValue("Javascripts")
252 </head>
253
254 @{
255 string currentPageID = GetGlobalValue("Global:Page.ID");
256
257 string bodyClass = "";
258
259 if (currentPageID == "1" || currentPageID == "52" || currentPageID == "1307" || currentPageID == "1333") {
260 bodyClass = "frontpage";
261 } else {
262 bodyClass = "regular-page";
263 }
264 }
265
266 <body class="@bodyClass">
267 <div id="page">
268 <!-- Google Tag Manager (noscript) -->
269 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NCHCZ2D" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
270 <!-- End Google Tag Manager (noscript) -->
271
272
273 @{
274 var facebookUrl = GetString("Item.Area.Facebook");
275 var instagramUrl = GetString("Item.Area.Instagram");
276 var linkedInUrl = GetString("Item.Area.LinkedIn");
277 }
278
279
280
281 @using Dynamicweb.Content
282 @{
283 var areaID = Dynamicweb.Frontend.PageView.Current().Area.ID;
284 var RootPages = Dynamicweb.Extensibility.ServiceLocator.Current.GetPageService().GetRootPagesForArea( areaID );
285 var FirstPage = RootPages.First();
286 }
287
288
289 <nav id="menu" class="mobile-menu">
290 @GetValue("DwNavigation(mobilenav)")
291 </nav>
292
293 <!--<nav class="pushy pushy-left">
294 <div class="pushy-content">
295 <ul class="dwnavigation" id="MobileMenu" settings="template:MobileMenu.xslt;endlevel:1;">
296
297 <li class="pushy-submenu">
298 <button>Submenu</button>
299 <ul>
300 <li class="pushy-link"><a href="#">Item 1</a></li>
301 <li class="pushy-link"><a href="#">Item 2</a></li>
302 <li class="pushy-link"><a href="#">Item 3</a></li>
303 </ul>
304 </li>
305 <li class="pushy-link"><a href="#">Item 1</a></li>
306 <li class="pushy-link"><a href="#">Item 2</a></li>
307 </ul>
308 </div>
309 </nav> -->
310
311
312 <!-- Site Overlay -->
313 <div class="site-overlay"></div>
314 <div id="container">
315 <div class="main-navigation sticky">
316 <div class="desktop">
317 <div class="container">
318 <div class="col-md-4 col-xs-6 logo-container">
319 <a href='@(FirstPage.GetPageHrefValue())' class="logo-href"><img src='@(GetValue("Item.Area.Logo"))' width="255" class="img-responsive"></a>
320 </div>
321 <div class="navigation-container">
322
323 @GetValue("DwNavigation(mainnavigation)")
324
325 <!-- <ul class="dwnavigation" id="main-menu" settings="endlevel:1;"></ul> -->
326
327 @if( !string.IsNullOrEmpty( GetString("Item.Area.Facebook") ) ){
328 <ul class="social-icons-menu">
329 @if( !string.IsNullOrEmpty( GetString("Item.Area.Facebook") ) ){
330 <a href="@facebookUrl" target="_blank">
331 <li class="li-facebook"><i class="fab fa-facebook-f"></i></li>
332 </a>
333 }
334
335 @if ( !string.IsNullOrEmpty ( GetString("Item.Area.LinkedIn") ) ) {
336 <a href="@linkedInUrl" target="_blank">
337 <li class="li-linkedin"><i class="fab fa-linkedin-in"></i></li>
338 </a>
339 }
340
341 @if( !string.IsNullOrEmpty( GetString("Item.Area.Instagram") ) ){
342 <a href="@instagramUrl" target="_blank">
343 <li class="li-instagram"><i class="fab fa-instagram"></i></li>
344 </a>
345 }
346 </ul>
347 }
348
349 </div>
350
351 <div class="col-xs-6 hidden-md hidden-lg text-right">
352 <div class="mobile-menu">
353 <a href="#menu" class="mobile-menu-toggle menu-btn">
354 <span class="mobile-menu-lines"></span>
355 </a>
356 </div>
357 </div>
358
359 <!-- <div class="col-xs-6 hidden-md hidden-lg text-right">
360 <div class="mobile-menu ">
361 <a href="javascript:" class="mobile-menu-toggle menu-btn">
362 <span class="mobile-menu-lines"></span>
363 </a>
364 </div>
365 </div> -->
366 </div>
367 </div>
368 </div>
369
370 @GetValue("DwContent(prependmodules)")
371
372
373 @using Newtonsoft.Json;
374 @using System.Xml;
375 @using System.Net;
376 @using System.IO;
377 @using System.Web;
378 @using System.Linq;
379 @{
380 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
381 }
382
383 @functions{
384
385 public class Vehicle
386 {
387 public int Id { get; set; }
388 public string Mileage { get; set; }
389 public string Year { get; set; }
390 public string Make { get; set; }
391 public string Model { get; set; }
392 public string Variant { get; set; }
393 public string RetailPrice { get; set; }
394 public string VatableValue { get; set; }
395 public string VatableRate { get; set; }
396 public string vatResult { get; set; }
397 public string RegistrationDate { get; set; }
398 public string Condition { get; set; }
399 public string Color { get; set; }
400 public string Upholstery { get; set; }
401 public string UpholsteryColor { get; set; }
402 public string Type { get; set; }
403 public string Motor { get; set; }
404 public string Propellant { get; set; }
405 public string NumberOfDoors { get; set; }
406 public string NewPrice { get; set; }
407 public string NumberOfGears { get; set; }
408 public string GearType { get; set; }
409 public string MotorVolume { get; set; }
410 public string Cylinders { get; set; }
411 public string ValvesPerCylinder { get; set; }
412 public string DriveWheels { get; set; }
413 public string TrailerWeight { get; set; }
414 public string GasTankMax { get; set; }
415 public string KmPerLiter { get; set; }
416 public string Acceleration0To100 { get; set; }
417 public string TopSpeed { get; set; }
418 public string EdbNumber { get; set; }
419 public string Effect { get; set; }
420 public string EffectInNm { get; set; }
421 public string EffectInNmRpm { get; set; }
422 public string Weight { get; set; }
423 public string WeightTax { get; set; }
424 public string Payload { get; set; }
425 public string NumberOfAirbags { get; set; }
426 public string TotalWeight { get; set; }
427 public string BodyType { get; set; }
428 public string Comment { get; set; }
429 public List<object> EquipmentList { get; set; }
430 public int PictureCount { get; set; }
431 public List<string> Pictures { get; set; }
432 public string ModifiedDate { get; set; }
433 public string CreatedDate { get; set; }
434 public string DealerName { get; set; }
435 public string DealerId { get; set; }
436 public string DealerAddressStreetLine1 { get; set; }
437 public string DealerAddressStreetLine2 { get; set; }
438 public string DealerAddressZipCode { get; set; }
439 public string DealerAddressCity { get; set; }
440 public string DealerDeliveryCost { get; set; }
441 public string DealerDeliveryCostVans { get; set; }
442 public string DealerLicensePlatePrice { get; set; }
443 public string Length { get; set; }
444 public string Width { get; set; }
445 public string Height { get; set; }
446 public string LitresUsedPer100Km { get; set; }
447 public string LeasingPrice { get; set; }
448 public string GalleryUrl { get; set; }
449 }
450
451 public class VehicleDetails
452 {
453 public List<string> Images { get; set; }
454 public string Description { get; set; }
455
456 public VehicleDetails()
457 {
458 Images = new List<string>();
459 Description = "";
460 }
461 }
462
463 public class RootObject
464 {
465 public string ApiVersion { get; set; }
466 public List<Vehicle> Vehicles { get; set; }
467 }
468
469
470
471 public XmlDocument FetchApiData(string username, string password)
472 {
473 // Mobile.de url
474 string url = "https://services.mobile.de/search-api/search?customerId=469859&sort.field=makeModel&sort.order=ASCENDING&page.size=100";
475 //https://services.mobile.de/search-api/search?customerId=469859&sort.field=makeModel&sort.order=ASCENDING&page.size=100
476 XmlTextReader rdr = new XmlTextReader(url);
477
478 XmlUrlResolver xResolver = new XmlUrlResolver();
479 xResolver.Credentials = new NetworkCredential(username, password);
480 rdr.XmlResolver = xResolver;
481
482 XmlDocument xmlDoc = new XmlDocument();
483 xmlDoc.Load(rdr);
484
485 return xmlDoc;
486 }
487
488 public XmlDocument FetchGalleryData(string username, string password, string galleryUrl)
489 {
490 // Mobile.de url
491 string url = galleryUrl;
492
493 XmlTextReader rdr = new XmlTextReader(url);
494
495 XmlUrlResolver xResolver = new XmlUrlResolver();
496 xResolver.Credentials = new NetworkCredential(username, password);
497 rdr.XmlResolver = xResolver;
498
499 XmlDocument xmlDoc = new XmlDocument();
500 xmlDoc.Load(rdr);
501
502 return xmlDoc;
503 }
504
505 public VehicleDetails MapGallery(XmlDocument gallery)
506 {
507 var Detail = new VehicleDetails();
508
509 XmlNamespaceManager manager = new XmlNamespaceManager(gallery.NameTable);
510 manager.AddNamespace("ad", "http://services.mobile.de/schema/ad");
511
512
513
514 XmlNodeList nl = gallery.SelectNodes("ad:ad", manager);
515 //XmlNodeList nl = gallery.SelectNodes("ad:images", manager);
516 XmlNode root = nl[0];
517
518 XmlNodeList il = root.SelectNodes("ad:images", manager);
519 XmlNode imgRoot = il[0];
520
521 XmlNodeList Description = root.SelectNodes("ad:description", manager);
522 XmlNode desc = Description[0];
523
524 int i = 1;
525 foreach (XmlNode fNode in imgRoot.ChildNodes)
526 {
527
528 if (i > 12)
529 {
530 break;
531 }
532
533 if (fNode.Name == "ad:image" && fNode.HasChildNodes)
534 {
535 XmlNode ImageLarge = fNode.ChildNodes
536 .Cast<XmlNode>()
537 .Where(
538 x => x.Attributes != null &&
539 x.Attributes["size"] != null &&
540 x.Attributes["url"] != null &&
541 x.Attributes["size"].Value == "XXL" &&
542 !string.IsNullOrEmpty(x.Attributes["url"].Value))
543 .First();
544
545 if (ImageLarge != null)
546 {
547 string ImgLarge = ImageLarge.Attributes["url"].Value;
548 Detail.Images.Add(ImgLarge.Replace("$_27", "$_3"));
549 }
550 }
551
552 i++;
553 }
554
555 Detail.Description = desc.InnerText;
556
557 return Detail;
558
559 }
560
561 public List<Vehicle> MapVehicles(XmlDocument list)
562 {
563 var vh = new List<Vehicle>();
564
565 XmlNamespaceManager manager = new XmlNamespaceManager(list.NameTable);
566 manager.AddNamespace("search", "http://services.mobile.de/schema/search");
567 manager.AddNamespace("ad", "http://services.mobile.de/schema/ad");
568
569 XmlNodeList nl = list.SelectNodes("//search:search-result/search:ads", manager);
570 XmlNode root = nl[0];
571
572
573
574 foreach (XmlNode xnode in root.ChildNodes)
575 {
576 try
577 {
578 var v = new Vehicle();
579 v.EquipmentList = new List<Object>();
580 v.Pictures = new List<string>();
581
582 v.Id = 0;
583
584 // Map ID
585 if (xnode.Attributes != null && xnode.Attributes["key"] != null)
586 {
587 int ID = 0;
588 int.TryParse(xnode.Attributes["key"].Value, out ID);
589 v.Id = ID;
590 v.EdbNumber = ID.ToString();
591 }
592
593 if (xnode.Attributes != null && xnode.Attributes["url"] != null)
594 {
595 v.GalleryUrl = xnode.Attributes["url"].Value;
596 }
597
598 // Fetching prices.
599 //XmlNodeList vp = xnode.SelectNodes("ad:price",manager);
600 // RetailPrice
601 // NewPrice
602 //v.RetailPrice = vp[0]
603 // .ChildNodes
604 // .Cast<XmlNode>()
605 // .Where( x => x.Name.Equals("ad:consumer-price-amount") )
606 // .First()
607 // .Attributes["value"].Value;
608
609 // Fetching vehicle prices
610 XmlNodeList vg = xnode.SelectNodes("ad:price", manager);
611 foreach (XmlNode vNode in vg[0].ChildNodes)
612 {
613 if (vNode.Name != null)
614 {
615 // RetailPrice
616 if (vNode.Name == "ad:consumer-price-amount" && vNode.Attributes["value"] != null)
617 {
618 v.RetailPrice = vNode.Attributes["value"].Value;
619 }
620
621 // Vatable Value
622 if (vNode.Name == "ad:vatable" && vNode.Attributes["value"] != null)
623 {
624 v.VatableValue = vNode.Attributes["value"].Value;
625 }
626 // Vatable Rate
627 if (vNode.Name == "ad:vat-rate" && v.VatableValue != "false")
628 {
629
630 v.VatableRate = vNode.Attributes["value"].Value;
631 }
632
633 }
634 }
635
636 // Gallery url
637 //v.GalleryUrl = xnode.SelectNodes("ad:images", manager)[0].Attributes["url"].Value;
638
639 // Lets fetch images
640 XmlNodeList vi = xnode.SelectNodes("ad:images", manager);
641 foreach (XmlNode iNode in vi[0].ChildNodes)
642 {
643 if (iNode.Name == "ad:image" && iNode.HasChildNodes)
644 {
645 XmlNode ImageLarge = iNode.ChildNodes
646 .Cast<XmlNode>()
647 .Where(
648 x => x.Attributes != null &&
649 x.Attributes["size"] != null &&
650 x.Attributes["url"] != null &&
651 x.Attributes["size"].Value == "XXL" &&
652 !string.IsNullOrEmpty(x.Attributes["url"].Value))
653 .First();
654 if (ImageLarge != null)
655 {
656 v.Pictures.Add(ImageLarge.Attributes["url"].Value);
657 }
658 }
659 }
660
661 v.PictureCount = v.Pictures.Count();
662
663 // Lets fetch vehicle informations
664 XmlNodeList vl = xnode.SelectNodes("ad:vehicle", manager);
665 foreach (XmlNode vNode in vl[0].ChildNodes)
666 {
667 if (vNode.Name != null)
668 {
669 // Type
670 if (vNode.Name == "ad:category" && vNode.HasChildNodes)
671 {
672 v.Type = vNode.FirstChild.InnerText;
673 }
674
675 // Make
676 if (vNode.Name == "ad:make" && vNode.HasChildNodes)
677 {
678 v.Make = vNode.FirstChild.InnerText;
679 }
680
681 // Model
682 if (vNode.Name == "ad:model" && vNode.HasChildNodes)
683 {
684 v.Model = vNode.FirstChild.InnerText;
685 }
686
687 // Variant
688 if (vNode.Name == "ad:model-description" && vNode.Attributes["value"] != null)
689 {
690 v.Variant = vNode.Attributes["value"].Value;
691 }
692
693 // Equipment list
694 if (vNode.Name == "ad:features" && vNode.HasChildNodes)
695 {
696 foreach (XmlNode fNode in vNode.ChildNodes)
697 {
698 if (fNode.Name == "ad:feature" && fNode.HasChildNodes)
699 {
700 v.EquipmentList.Add(fNode.FirstChild.InnerText);
701 }
702 }
703 }
704
705 if (vNode.Name == "ad:specifics" && vNode.HasChildNodes)
706 {
707 foreach (XmlNode sNode in vNode.ChildNodes)
708 {
709 // Farve
710 if (sNode.Name == "ad:exterior-color" && sNode.HasChildNodes)
711 {
712 v.Color = sNode.FirstChild.InnerText;
713 }
714
715 // Kørte km
716 if (sNode.Name == "ad:mileage" && sNode.Attributes != null && sNode.Attributes["value"] != null)
717 {
718 v.Mileage = sNode.Attributes["value"].Value;
719 }
720
721 // Første indregistrering
722 if (sNode.Name == "ad:first-registration" && sNode.Attributes != null && sNode.Attributes["value"] != null)
723 {
724 v.RegistrationDate = sNode.Attributes["value"].Value;
725 }
726
727 // Brændstof forbrug
728 if (sNode.Name == "ad:emission-fuel-consumption" && sNode.Attributes != null && sNode.Attributes["combined"] != null)
729 {
730 v.LitresUsedPer100Km = sNode.Attributes["combined"].Value;
731
732 Double LiterPer100Km = 0;
733 double.TryParse(v.LitresUsedPer100Km, out LiterPer100Km);
734 if (LiterPer100Km > 0)
735 {
736 double calculatedValue = 100 / LiterPer100Km;
737
738 v.KmPerLiter = (calculatedValue * 100).ToString();
739 }
740 }
741
742 // Brændstof
743 if (sNode.Name == "ad:fuel" && sNode.HasChildNodes)
744 {
745 v.Propellant = sNode.FirstChild.InnerText;
746 }
747
748 // Gear
749 if (sNode.Name == "ad:gearbox" && sNode.HasChildNodes)
750 {
751 v.GearType = sNode.FirstChild.InnerText;
752 }
753
754 // Heste
755 if (sNode.Name == "ad:power" && sNode.Attributes != null && sNode.Attributes["value"] != null)
756 {
757 v.MotorVolume = sNode.Attributes["value"].Value;
758 }
759
760 // brugtstatus
761 if (sNode.Name == "ad:condition" && sNode.HasChildNodes)
762 {
763 v.Condition = sNode.FirstChild.InnerText;
764 }
765
766 }
767 }
768
769 }
770 }
771
772
773 vh.Add(v);
774 }
775 catch (Exception ex)
776 {
777
778 }
779 }
780
781 return vh;
782
783 }
784 }
785
786 @{
787 int pageId = GetInteger("ParagraphPageID");
788 var page = Dynamicweb.Frontend.PageView.GetPageviewByPageID(pageId);
789 string apiUsername = page.AreaSettings.GetString("APIBrugernavn");
790 string apiPass = page.AreaSettings.GetString("APIKodeord");
791 var ApiData = FetchApiData(apiUsername, apiPass);
792 var MyList = MapVehicles(ApiData);
793
794 string overviewTitle = GetString("Item.Overskrift");
795 string overviewTeaser = GetString("Item.Teaser");
796 }
797 @{
798
799 int i = 0;
800
801 @*<text>Hej : <pre>@(JsonList)</pre></text>*@
802
803 int carID = 0;
804 if (System.Web.HttpContext.Current.Request["car"] != null)
805 {
806 carID = Int32.Parse(System.Web.HttpContext.Current.Request["car"]);
807 }
808
809 }
810
811
812 @if (!string.IsNullOrEmpty(GetString("Item.Topbillede")))
813 {
814 string topbilledeUrl = GetString("Item.Topbillede");
815 var topbilledeDimensions = Dynamicweb.Imaging.Image.GetSizeFromFile(System.Web.HttpContext.Current.Server.MapPath(topbilledeUrl));
816
817 <div class="page-image">
818 <img src='/Admin/Public/GetImage.ashx?Image=@(topbilledeUrl)&Width=@(topbilledeDimensions.Width)&Height=@(topbilledeDimensions.Height)&Quality=50&Crop=0' class="img-responsive">
819 </div>
820 }
821
822 @if (carID != 0 && MyList != null && MyList.Where(x => x.Id.Equals(carID)).Any())
823 {
824 // var token = convertToObject(json);
825 Vehicle currentCar = MyList.Where(x => x.Id.Equals(carID)).First();
826
827 try
828 {
829 var GalleryData = FetchGalleryData(apiUsername, apiPass, currentCar.GalleryUrl);
830
831 var MappedGalleryDescription = MapGallery(GalleryData);
832 currentCar.Pictures = MappedGalleryDescription.Images;
833 currentCar.Comment = MappedGalleryDescription.Description;
834
835 }
836 catch (Exception GalleryException)
837 {
838
839 <text><h2>Fejl: @(GalleryException.Message)</h2></text>
840 }
841 var pageView = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.GetPageview();
842 string fullUrl = pageView.GlobalTags.GetTagByName("Global:Request.PathAndQuery").Value.Substring(1);
843 string pageUrl = pageView.GlobalTags.GetTagByName("Global:Pageview.Url.Raw").Value;
844
845 if (currentCar != null)
846 {
847
848 string EncodedDescription = currentCar.Comment != null && currentCar.Comment != "" && currentCar.Comment != String.Empty ? JsonConvert.SerializeObject(currentCar.Comment, new JsonSerializerSettings
849 {
850 StringEscapeHandling = StringEscapeHandling.EscapeNonAscii
851 }) : String.Empty;
852
853
854 <!--@SnippetStart(Title)-->
855
856 <text>@(currentCar.Make) @(currentCar.Model) -</text>
857
858 <!--@SnippetEnd(Title)-->
859
860
861 <!--@SnippetStart(header)-->
862
863 <script type="application/ld+json">
864
865
866 {
867 "@@context": "http://schema.org/",
868 "@@type": "Product",
869 "name": "@currentCar.Make @currentCar.Model @currentCar.Variant",
870 "image": "@(currentCar.Pictures?.First())",
871 "description": @(EncodedDescription),
872 "mpn": "@(currentCar.Id.ToString())",
873 "brand": {
874 "@@type": "Thing",
875 "name": "@(currentCar.Make)"
876
877 },
878 "offers": {
879 "@@type": "Offer",
880 "priceCurrency": "DKK",
881 "price": "@(currentCar.LeasingPrice)",
882 "priceValidUntil": "2020-11-05",
883 "itemCondition": "http://schema.org/UsedCondition",
884 "availability": "http://schema.org/InStock",
885 "seller": {
886 "@@type": "Organization",
887 "name": "Global Car Leasing"
888
889 }
890 }
891 }
892
893 </script>
894
895 <!--@SnippetEnd(header)-->
896
897 <div class="leasebil-side leasebil-visning">
898
899 @if (HttpContext.Current.Request["testdrive"] == "true")
900 {
901
902 <section class="bar-blue text-center">
903 <p>Tak for din prøveturs bestilling, vi kontakter dig hurtigst muligt.</p>
904 </section>
905 }
906 @if (HttpContext.Current.Request["pris"] == "true")
907 {
908
909 <section class="bar-blue text-center">
910 <p>Dit bud er modtaget, vi kontakter dig hurtigst muligt. - <a href='/Default.aspx?ID=@GetString("ParagraphPageID")'>Tilbage til listen.</a></p>
911 </section>
912 }
913
914 @if (currentCar.PictureCount > 0)
915 {
916 int slideCount = 0;
917
918 <div class="slider-bound">
919 <div class="container" style="padding:0px;">
920 <div class="row">
921 <div class="col-xs-12">
922 <div id="car-slider" data-ride="carousel" class="carousel slide">
923 <div id="slide-wrapper" class="carousel-inner" title="Slideshow">
924
925 @foreach (var slide in currentCar.Pictures)
926 {
927 slideCount++;
928
929 <div class="item @if(slideCount==1){<text>active</text>}" data-itemcount='@(slideCount-1)'>
930 <img class="img-responsive" src="@(slide)">
931 </div>
932 }
933
934 </div>
935 <a class="left carousel-control" href="#car-slider" data-slide="prev">
936 @{
937 string chevronLeftUrl = "/Files/Templates/Designs/GlobalCarLeasing/assets/images/chevron_left.png";
938 var chevronLeftDimensions = Dynamicweb.Imaging.Image.GetSizeFromFile(System.Web.HttpContext.Current.Server.MapPath(chevronLeftUrl));
939 }
940 <img src="/Admin/Public/GetImage.ashx?Image=@(chevronLeftUrl)&Width=@(chevronLeftDimensions.Width)&Height=@(chevronLeftDimensions.Height)&Quality=50&Crop=0">
941
942 </a>
943
944 <a class="right carousel-control" href="#car-slider" data-slide="next">
945 @{
946 string chevronRightUrl = "/Files/Templates/Designs/GlobalCarLeasing/assets/images/chevron_right.png";
947 var chevronRightDimensions = Dynamicweb.Imaging.Image.GetSizeFromFile(System.Web.HttpContext.Current.Server.MapPath(chevronRightUrl));
948 }
949 <img src="/Admin/Public/GetImage.ashx?Image=@(chevronRightUrl)&Width=@(chevronRightDimensions.Width)&Height=@(chevronRightDimensions.Height)&Quality=50&Crop=0">
950
951 </a>
952 </div>
953
954 </div>
955
956 </div>
957
958 </div>
959
960 </div>
961 }
962
963 @if (currentCar.PictureCount > 0)
964 {
965 int slideCount = 0;
966
967 <div class="img-list container clearfix">
968 <div class="row" style="padding:0px;">
969
970 @foreach (var slide in currentCar.Pictures)
971 {
972
973 <div class="col-xs-1">
974 <a href="#" data-target="#car-slider" data-slide-to="@slideCount" class='@(slideCount==0?"active":"")'>
975 <img class="img-responsive" src="@slide">
976 </a>
977 </div>
978 slideCount++;
979 }
980 </div>
981 </div>
982 }
983
984 <section class="container information">
985 <div class="row">
986 <div class="col-xs-12 col-md-8">
987 @if (@currentCar.Model == "911 Urmodell")
988 {
989 currentCar.Model = "";
990 }
991 <h1>@currentCar.Make - @currentCar.Variant</h1>
992 <script>console.log('@(currentCar)');</script>
993
994 @foreach (var language in GetLoop("Languages"))
995 {
996 string culture = language.GetString("Culture");
997 if (culture == "de-DE" && language.GetBoolean("IsCurrent"))
998 {
999 <text>
1000 <p>@currentCar.Comment.Replace("\n", "<br>").Replace(" - - ", "<br>")</p>
1001 </text>
1002 }
1003 }
1004
1005 </div>
1006 <div class="col-md-3 col-md-push-1 col-xs-12 extra-info">
1007 <div class="row ">
1008 <div class="col-xs-8">
1009 <b>@(Translate("Price")):</b>
1010
1011 </div>
1012 <div class="col-xs-4 text-right">
1013 @{
1014 decimal Amount = Convert.ToDecimal(currentCar.RetailPrice.Replace(".00", ""));
1015 }
1016 @String.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "€{0:N0}", Amount)
1017 </div>
1018 </div>
1019 @{
1020 if (@currentCar.VatableValue == "false")
1021 {
1022
1023 }
1024 else
1025 {
1026 <div class="row ">
1027 <div class="col-xs-8 ">
1028 <b>@(Translate("Netto")):</b>
1029 </div>
1030
1031 <div class="col-xs-4 text-right">
1032 @{
1033
1034
1035
1036 decimal vatPrice = !string.IsNullOrEmpty(currentCar.RetailPrice) && decimal.TryParse(currentCar.RetailPrice.Replace(".", ","), out vatPrice) ? vatPrice : 0;
1037 decimal vatRate = !string.IsNullOrEmpty(currentCar.VatableRate) && decimal.TryParse(currentCar.VatableRate.Replace(".", ","), out vatRate) ? vatRate : 0;
1038
1039 decimal vatRatePercent, vatRatePercentResult;
1040
1041 vatRatePercent = vatRate * 100;
1042 vatRatePercentResult = vatRatePercent / (100 + vatRatePercent);
1043 vatPrice = vatPrice - (vatPrice * vatRatePercentResult);
1044 decimal VatAmount = Convert.ToDecimal(vatPrice.ToString().Replace(".00", ""));
1045
1046
1047
1048
1049 decimal vatPriceEn = !string.IsNullOrEmpty(currentCar.RetailPrice) && decimal.TryParse(currentCar.RetailPrice, out vatPrice) ? vatPrice : 0;
1050 decimal vatRateEn = !string.IsNullOrEmpty(currentCar.VatableRate) && decimal.TryParse(currentCar.VatableRate, out vatRate) ? vatRate : 0;
1051
1052
1053 decimal vatRatePercentEn, vatRatePercentResultEn;
1054
1055 vatRatePercentEn = vatRate * 100;
1056 vatRatePercentResultEn = vatRatePercentEn / (100 + vatRatePercentEn);
1057 vatPriceEn = vatPriceEn - (vatPriceEn * vatRatePercentResultEn);
1058
1059 decimal VatAmountEn = Convert.ToDecimal(vatPriceEn.ToString().Replace("0.00", ""));
1060 }
1061
1062
1063 @if (Translate("Netto") == "VAT")
1064 {
1065 @String.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "€{0:N0}", VatAmountEn)
1066 }
1067 else
1068 {
1069 @String.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "€{0:N0}", VatAmount)
1070 }
1071
1072
1073 </div>
1074 </div>
1075 }
1076 }
1077
1078
1079 <div class="btn-holder">
1080 <a href='javascript:' class="btn btn-gcl reverse contact_us_button">@(Translate("contact_us","Kontakt os"))</a>
1081 </div>
1082 </div>
1083 @*<div class="col-xs-12 col-sm-4 col-md-3 col-md-push-1">
1084 <h1 class="price" style="font-weight:500;color:#000;">Pris: <b>@Convert.ToDouble(currentCar.RetailPrice).ToString("#,##0") KR</b></h1>
1085 </div>*@
1086 </div>
1087 </section>
1088
1089 <section class="specs">
1090 <div class="container">
1091 <div class="row">
1092 <div class="col-xs-12 col-md-4 col-md-push-1">
1093 <h2>@(Translate("specifications","Specifikationer"))</h2>
1094 <table class="table">
1095 @*<tr>
1096 <td><b>Årgang</b></td>
1097 <td class="text-right">@currentCar.Year</td>
1098 </tr>*@
1099 <tr>
1100 <td><b>@(Translate("HorsePower_New","Hestekræfter"))</b></td>
1101 <td class="text-right">@(Math.Round(Convert.ToInt32(currentCar.MotorVolume)*1.36, MidpointRounding.AwayFromZero))</td>
1102 </tr>
1103 <tr>
1104 <td><b>@(Translate("fuel","Brændstof"))</b></td>
1105 <td class="text-right">@currentCar.Propellant</td>
1106 </tr>
1107
1108 @if (!String.IsNullOrEmpty(currentCar.Mileage))
1109 {
1110 <tr>
1111 <td><b>@(Translate("km_long","Kilometer"))</b></td>
1112 <td class="text-right">@Convert.ToDouble(currentCar.Mileage).ToString("#,##0")</td>
1113 </tr>
1114 }
1115 <tr>
1116 <td><b>@(Translate("Type"))</b></td>
1117 <td class="text-right">@currentCar.Type</td>
1118 </tr>
1119 <tr>
1120 <td><b>@(Translate("color","Farve"))</b></td>
1121 <td class="text-right">@currentCar.Color</td>
1122 </tr>
1123 <tr>
1124 <td><b>@(Translate("first_registration","Første indregistrering"))</b></td>
1125 <td class="text-right">@currentCar.RegistrationDate</td>
1126 </tr>
1127 </table>
1128 </div>
1129 <div class="col-xs-12 col-md-4 col-md-push-2">
1130 <h2>@(Translate("equipment","Udstyr"))</h2>
1131 <div class="equipment table-wrapper">
1132 <table class="table">
1133 <tr>
1134 <td>
1135
1136 @foreach (var equipment in currentCar.EquipmentList)
1137 {
1138 <text>@(equipment), </text>
1139 }
1140 </td>
1141 </tr>
1142 </table>
1143 </div>
1144 </div>
1145 </div>
1146 </div>
1147 </section>
1148 </div>
1149
1150 <!--@SnippetStart(mainHeader)-->
1151 <meta property="og:url" content="http://www.globalcarleasing.dk/biler?car=@carID">
1152 <meta property="og:type" content="product">
1153 <meta property="og:title" content="@currentCar.Make @currentCar.Model @currentCar.Variant">
1154 <meta property="og:description" content="@currentCar.Comment">
1155 if (currentCar.Pictures != null)
1156 {
1157 <meta property="og:image" content="@currentCar.Pictures[0]">
1158 }
1159 <meta property="product:price:amount" content="@currentCar.RetailPrice">
1160
1161 <meta property="product:price:currency" content="DKK">
1162 <!--@SnippetEnd(mainHeader)-->
1163
1164 <!--@SnippetStart(Scripts)-->
1165 <div class="modal fade" id="modal" tabindex="-1" role="dialog">
1166 <div class="modal-dialog" role="document">
1167 <section class="klikenpris modal-content">
1168 <form onsubmit="return FormCheck15();" action="http://www.perb.dk/Admin/Public/404.aspx" enctype="multipart/form-data" method="post" name="postform15" id="postform15" class="form-horizontal">
1169 <input type="hidden" name="_sys_to_email" value="bot@dynamicweb.com">
1170 <input type="hidden" name="FormCH1_h" value="bd10758ab90a27c26c79c26b5a5c82ac">
1171 <input type="hidden" name="FormCH1_f" value="bfb322dabfe5ddeb71798d2058363cf4">
1172 <input type="hidden" name="FormCH1_s" value="33d9b42bf7890884c11c7fb3ef5496b2">
1173 <input type="hidden" name="FormCH1_i" value="bcc14b46e41226725fd9e36506283ac5">
1174 <input type="hidden" name="Recipient" value="salg@perb.dk">
1175 <input type="hidden" name="RecipientBCC" value="mh@clienti.dk">
1176 <input type="hidden" name="Subject" value="Klik en pris">
1177 <input type="hidden" name="DWDateFormat" value="dd-mm-yyyy">
1178 <input type="hidden" name="FormSaveData" value="1">
1179 <input type="hidden" name="FormSaveDataDate" value="">
1180 <input type="hidden" name="FormSaveDataEncoding" value="">
1181 <input type="hidden" name="Charset" value="iso-8859-1">
1182 <input type="hidden" name="FormUseSystemNames" value="">
1183 <input type="hidden" name="FormSenderUseUserEmail" value="1">
1184 <input type="hidden" name="sender" value="noreply@perb.dk">
1185 <input type="hidden" name="FormID" value="15">
1186 <input type="hidden" name="FormName" value="leasebilKlikEnPris">
1187 <input type="hidden" name="FormHTML" value="1">
1188 <input type="hidden" name="Redirect" value='@(fullUrl.Replace("http:/www.perb.dk/",""))&pris=true'>
1189 <input type="hidden" name="FormReceipt" value="">
1190 <input type="hidden" name="FormReceiptField" value="">
1191 <input type="hidden" name="FormReceiptShowForm" value="">
1192 <input type="hidden" name="FormReceiptSubject" value="">
1193 <input type="hidden" name="FormReceiptText" value="">
1194 <input type="hidden" name="FormReceiptSender" value="">
1195 <div class="modal-header text-center">
1196 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
1197 <h1 class="modal-title ">Klik en pris</h1>
1198 <p>Jeg vil byde</p>
1199 <div class="row">
1200 <div class="col-xs-12 col-sm-8 col-sm-push-2">
1201 <input type="number" name="pris" value="" step="1000" max="999999" placeholder='@currentCar.RetailPrice' class="form-control">
1202 </div>
1203 </div>
1204 </div>
1205 <div class="modal-body">
1206 <div class="form-group">
1207 <label for="navn" class="col-sm-2 control-label">Vognnr</label>
1208 <div class="col-sm-8" style="line-height: 2.5em;">@currentCar.EdbNumber</div>
1209 </div>
1210 <div class="form-group">
1211 <label for="navn" class="col-sm-2 control-label">Navn</label>
1212 <div class="col-sm-8">
1213 <input type="text" name="navn" value="" class="form-control">
1214 </div>
1215 </div>
1216 <div class="form-group">
1217 <label for="navn" class="col-sm-2 control-label">Email</label>
1218 <div class="col-sm-8">
1219 <input type="text" name="E-mail" value="" class="form-control">
1220 </div>
1221 </div>
1222 <div class="form-group">
1223 <label for="navn" class="col-sm-2 control-label">Telefon</label>
1224 <div class="col-sm-8">
1225 <input type="text" name="telefon" value="" class="form-control">
1226 </div>
1227 </div>
1228 <div class="form-group">
1229 <div class="col-xs-12 col-sm-8 col-sm-push-2">
1230 <input type="button" class="btn btn-block btn-lg btn-primary" onclick="FormCheck15();" name="sendpris" value="Send pris">
1231 </div>
1232 </div>
1233 </div>
1234
1235 <input type="hidden" name="vognnr" value="@currentCar.EdbNumber">
1236
1237 <input type="hidden" name="sorteringen" value="vognnr;;pris;;navn;;E-mail;;telefon;;">
1238 <input type="hidden" name="vognnr_DWX" value="Vognnr">
1239 <input type="hidden" name="pris_DWX" value="Pris">
1240 <input type="hidden" name="navn_DWX" value="Navn">
1241 <input type="hidden" name="email_DWX" value="Email">
1242 <input type="hidden" name="telefon_DWX" value="Telefon">
1243 <input type="hidden" name="sendpris_DWX" value="Send pris">
1244 </form>
1245
1246 </section>
1247
1248 <section class="book modal-content">
1249 <form onsubmit="return FormCheck14();" action="http://www.perb.dk/Admin/Public/404.aspx" enctype="multipart/form-data" method="post" name="postform14" id="postform14" style="margin:0px;">
1250 <div class="modal-header text-center">
1251 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
1252 <h1 class="modal-title ">Book en gratis prøvetur</h1>
1253 </div>
1254 <div class="modal-body">
1255 <input type="hidden" name="_sys_to_email" value="bot@dynamicweb.com">
1256 <input type="hidden" name="FormCH1_h" value="bd10758ab90a27c26c79c26b5a5c82ac">
1257 <input type="hidden" name="FormCH1_f" value="420b43a92ee9d6f25601683b695420de">
1258 <input type="hidden" name="FormCH1_s" value="33d9b42bf7890884c11c7fb3ef5496b2">
1259 <input type="hidden" name="FormCH1_i" value="bcc14b46e41226725fd9e36506283ac5">
1260 <input type="hidden" name="Recipient" value="salg@perb.dk">
1261 <input type="hidden" name="RecipientBCC" value="mh@clienti.dk">
1262 <input type="hidden" name="Subject" value="Book en prøvetur">
1263 <input type="hidden" name="DWDateFormat" value="dd-mm-yyyy">
1264 <input type="hidden" name="FormSaveData" value="1">
1265 <input type="hidden" name="FormSaveDataDate" value="">
1266 <input type="hidden" name="FormSaveDataEncoding" value="">
1267 <input type="hidden" name="Charset" value="iso-8859-1">
1268 <input type="hidden" name="FormUseSystemNames" value="">
1269 <input type="hidden" name="FormSenderUseUserEmail" value="1">
1270 <input type="hidden" name="sender" value="noreply@perb.dk">
1271 <input type="hidden" name="FormID" value="14">
1272 <input type="hidden" name="FormName" value="leasebilTestKorsel">
1273 <input type="hidden" name="FormHTML" value="1">
1274 <input type="hidden" name="Redirect" value='@(fullUrl.Replace("http:/www.perb.dk/",""))&testdrive=true'>
1275 <input type="hidden" name="FormReceipt" value="">
1276 <input type="hidden" name="FormReceiptField" value="">
1277 <input type="hidden" name="FormReceiptShowForm" value="">
1278 <input type="hidden" name="FormReceiptSubject" value="">
1279 <input type="hidden" name="FormReceiptText" value="">
1280 <input type="hidden" name="FormReceiptSender" value="">
1281
1282 <div class="row">
1283 @if (currentCar.Pictures != null)
1284 {
1285
1286 <div class="col-xs-4">
1287 <img src="@currentCar.Pictures[0]?width=165" class="img-responsive">
1288 </div>
1289 <div class="col-xs-8">
1290 <h2>@currentCar.Make @currentCar.Model</h2>
1291 <p>@(Translate("CarNumber")) @currentCar.EdbNumber</p>
1292 </div>
1293 }
1294 else
1295 {
1296 <div class="col-xs-12 text-center">
1297 <h2>@currentCar.Make @currentCar.Model</h2>
1298 <p>@(Translate("CarNumber")) @currentCar.EdbNumber</p>
1299 </div>
1300 }
1301 </div>
1302
1303 <input type="hidden" name="vognnr" value="@currentCar.EdbNumber">
1304 <h2 class="text-center">Bookings formular</h2>
1305 <br>
1306 <div class="form-horizontal">
1307
1308 <div class="form-group">
1309 <label for="navn" class="col-sm-2 control-label">Navn</label>
1310 <div class="col-sm-8">
1311 <input type="text" class="form-control" name="navn" id="navn">
1312 </div>
1313 </div>
1314 <div class="form-group">
1315 <label for="navn" class="col-sm-2 control-label">Tlf nr.</label>
1316 <div class="col-sm-8">
1317 <input type="text" class="form-control" name="telefon" id="telefon">
1318 </div>
1319 </div>
1320 <div class="form-group">
1321 <label for="E-mail" class="col-sm-2 control-label">Mail</label>
1322 <div class="col-sm-8">
1323 <input type="text" class="form-control" name="E-mail" id="E-mail">
1324 </div>
1325 </div>
1326 <div class="form-group">
1327 <label for="dato" class="col-sm-2 control-label">Dato</label>
1328 <div class="col-sm-8">
1329 <input type="text" class="form-control" name="dato" id="dato">
1330 </div>
1331 </div>
1332 <div class="form-group">
1333 <label for="tid" class="col-sm-2 control-label">Tid</label>
1334 <div class="col-sm-8">
1335 <input type="text" class="form-control" name="tid" id="tid">
1336 </div>
1337 </div>
1338 </div>
1339
1340 <div class="row">
1341 <div class="col-xs-12 col-sm-8 col-sm-push-2">
1342 <input type="button" onclick="FormCheck14();" name="bestil" class="btn btn-block btn-lg btn-primary" value="Bestil prøvetur">
1343 </div>
1344 </div>
1345 <input type="hidden" name="sorteringen" value="vognnr;;navn;;telefon;;E-mail;;dato;;tid;;">
1346 <input type="hidden" name="vognnr_DWX" value="Vognnr">
1347 <input type="hidden" name="navn_DWX" value="Navn">
1348 <input type="hidden" name="telefon_DWX" value="Telefon">
1349 <input type="hidden" name="email_DWX" value="Email">
1350 <input type="hidden" name="dato_DWX" value="Dato">
1351 <input type="hidden" name="tid_DWX" value="Tid">
1352 <input type="hidden" name="bestil_DWX" value="Bestil">
1353
1354 </div>
1355 </form>
1356 </section>
1357
1358 <script type="text/javascript">
1359 //<![CDATA[
1360 function FormCheck14() {
1361 var pForm = document.getElementById("postform14");
1362 s = function (e) { e.elements['FormCH1_h'].value = 'bd10758ab90a27c26c79c26b5a5c82ac'; e.elements['_sys_to_email'].value = ''; e.setAttribute('action', 'http://www.perb.dk/Admin/Public/FormMail.aspx?mode=20'); return true };
1363 var anti = s(pForm);
1364 pForm.submit();
1365 ga('send', 'event', 'leasebil', 'booktur-submit', document.location.href);
1366 }
1367 //]]>
1368 </script>
1369 <script type="text/javascript">
1370 //<![CDATA[
1371 function FormCheck15() {
1372 var pForm = document.getElementById("postform15");
1373 s = function (e) { e.elements['FormCH1_h'].value = 'bd10758ab90a27c26c79c26b5a5c82ac'; e.elements['_sys_to_email'].value = ''; e.setAttribute('action', 'http://www.perb.dk/Admin/Public/FormMail.aspx?mode=20'); return true };
1374 var anti = s(pForm);
1375 pForm.submit();
1376 ga('send', 'event', 'leasebil', 'klikenpris-submit', document.location.href);
1377 }
1378 //]]>
1379 </script>
1380
1381
1382 </div>
1383 </div>
1384 <!--@SnippetEnd(Scripts)-->
1385
1386
1387
1388 <script>console.log(@(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(currentCar)))</script>
1389 }
1390 else
1391 {
1392 <script>console.log("Bilen findes ikke.")</script>
1393 }
1394
1395
1396 }
1397 else
1398 {
1399
1400 <div class="overview-container overview-container--trading test-class">
1401 <div class="leasebil-side">
1402 <div class="container">
1403 <div class="row">
1404 <div class='col-xs-12'>
1405 <div class="leasebil-oversigt-filter">
1406 <h2>@(Translate("find_your_car","Find din bil"))</h2>
1407
1408 <div class="toggle-filters visible-xs">@(Translate("show_filters","Vis filtre"))</div>
1409 <div class="custom col-md-12">
1410 <div class="filters">
1411 <div class="custom col-md-4">
1412 <input type="text" class="form-control filter query" placeholder='@(Translate("NrModelBrand"))'>
1413 </div>
1414 </div>
1415 </div>
1416 </div>
1417
1418 <div class="leasebil-infobox">
1419 <div class="infobox">
1420 <p><strong>@Translate("GermanTaxDisclaimer")</strong></p>
1421 </div>
1422 </div>
1423
1424 </div>
1425 <div class="col-xs-12">
1426 <div class="">
1427 @if (!string.IsNullOrEmpty(overviewTitle) || !string.IsNullOrEmpty(overviewTeaser))
1428 {
1429 <div class="leasebil-oversigt-info">
1430 @if (!string.IsNullOrEmpty(overviewTitle))
1431 {
1432 <h2 class="leasebil-oversigt-info__title">@(overviewTitle)</h2>
1433 }
1434 @if (!string.IsNullOrEmpty(overviewTeaser))
1435 {
1436 <p class="leasebil-oversigt-info__teaser">@(overviewTeaser)</p>
1437 }
1438 </div>
1439 }
1440 <div class="row">
1441 <div class="col-xs-6 text-left">
1442 <p class="amount-text"><span class="car-count">0</span> @(Translate("matching_cars","matchende biler"))</p>
1443 </div>
1444 <div class="col-xs-6 text-right sort-select">
1445 <p>
1446 <b class="hidden-xs">@(Translate("sort","SORTER")): </b>
1447 <select name="car-sort" class="form-control" style="display:inline;width:auto;">
1448 <option value="priceDSC">@(Translate("price_desc","Pris faldende"))</option>
1449 <option value="priceASC">@(Translate("price_asc","Pris stigende"))</option>
1450 <option value="mileageDSC">@(Translate("km_desc","KM faldende"))</option>
1451 <option value="mileageASC">@(Translate("km_asc","KM stigende"))</option>
1452 </select>
1453 </p>
1454 </div>
1455 </div>
1456 </div>
1457
1458 </div>
1459 </div>
1460 </div>
1461 </div>
1462 </div>
1463
1464 <div class='leasebil-oversigt salgs-biler container-fluid'>
1465
1466 </div>
1467
1468
1469 }
1470
1471 <div id="additional-modules">@GetValue("DwContent(additionalmodules)")</div>
1472
1473 <script type="text/javascript">
1474 var feedCars = { "Vehicles" : @(JsonConvert.SerializeObject(MyList)) };
1475 var LangList = {
1476 "NrModelBrand" : '@(Translate("NrModelBrand","Vognnr. / Mærke / Model"))',
1477 "SelectBrand" : '@(Translate("SelectBrand","Vælg mærke"))',
1478 "Model" : '@(Translate("Model","Model"))',
1479 "SelectFuel" : '@(Translate("SelectFuel","Vælg brændstof"))',
1480 "SelectGearType" : '@(Translate("SelectGearType","Vælg geartype"))',
1481 "Select" : '@(Translate("Select","Vælg"))',
1482 "Price" : '@(Translate("Price","Pris"))',
1483 "VatPrice" : '@(Translate("Netto", "Pris uden moms"))',
1484 "Km" : '@(Translate("Km","KM"))',
1485 "Convertible" : '@(Translate("Convertible","Cabriolet"))',
1486 "Type" : '@(Translate("Type","Type"))',
1487
1488 "CarNumber" : '@(Translate("CarNumber","Vognnr"))',
1489 "KML" : '@(Translate("KML","KM/L"))',
1490 "HorsePower" : '@(Translate("HorsePower","HK"))',
1491 "Year" : '@(Translate("Year","Årgang"))',
1492
1493 "ShowFilters" : '@(Translate("show_filters"))',
1494 "HideFilters" : '@(Translate("hide_filters","Skjul filtre"))',
1495
1496
1497
1498 };
1499
1500 function _l(key, def) {
1501 if( typeof(def) == "undefined" )
1502 def = "";
1503
1504 if( typeof( LangList[key] ) != "undefined" )
1505 return LangList[key];
1506 else
1507 return def;
1508 }
1509 //var feedTranstions = translationString;
1510 </script>
1511 <!--@SnippetStart(Scripts)-->
1512 <link rel="preload" href="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" as="script">
1513 <link rel="preload" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" as="script">
1514 <link rel="preload" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" as="style">
1515 <link rel="preload" href='/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/mobile-dev.js' as="script">
1516 <script type="text/javascript">
1517 $(function() {
1518 $('#car-slider').on('slide.bs.carousel', function (e) {
1519 var id = $(e.relatedTarget).attr('data-itemcount');
1520 var ele = $('.img-list a[data-slide-to="'+id+'"]');
1521 if( ele )
1522 {
1523 $('.img-list a[data-slide-to].active').removeClass('active');
1524 ele.addClass('active');
1525 }
1526 })
1527
1528 // Car link
1529 if( $('.contact_us_button').length > 0 )
1530 {
1531 var ContactPageUrl = '@(GetValue("Item.Area.BilvisningKontaktside"))';
1532 var MyUrl = encodeURIComponent( window.location.href );
1533 var NewLink = "javascript:";
1534
1535 if( ContactPageUrl.indexOf("?") !== -1 )
1536 {
1537 NewLink = ContactPageUrl + "&FromUrl=" + MyUrl;
1538 } else {
1539 NewLink = ContactPageUrl + "?FromUrl=" + MyUrl;
1540 }
1541
1542 $('.contact_us_button').attr('href', NewLink);
1543 }
1544 });
1545 </script>
1546
1547 <script type="text/javascript" src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js" defer=""></script>
1548 <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" defer=""></script>
1549 <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
1550 <script type="text/javascript" src='/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/mobile-dev.js' defer=""></script>
1551 <!--@SnippetEnd(Scripts)-->
1552
1553 <script>console.log(@(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Values)))</script>
1554
1555 <!-- Insert rest here-->
1556
1557 <div id="scrollToTop"></div>
1558
1559 <div class="footer">
1560 <div class="container">
1561 <div class="row">
1562 <div class="col-md-3">
1563 @{
1564 string LogoBundUrl = !string.IsNullOrEmpty(GetString("Item.Area.LogoBund")) ? GetString("Item.Area.LogoBund") : "/Files/Templates/Designs/GlobalCarLeasing/assets/images/footer_logo_white.png";
1565 var LogoBundDimensions = Dynamicweb.Imaging.Image.GetSizeFromFile(System.Web.HttpContext.Current.Server.MapPath(LogoBundUrl));
1566 }
1567 <img src='/Admin/Public/GetImage.ashx?Image=@(LogoBundUrl)&Width=@(LogoBundDimensions.Width)&Height=@(LogoBundDimensions.Height)&Quality=50&Crop=0' class="img-responsive">
1568 </div>
1569
1570 <div class="col-md-7">
1571 <div class="footer__content">
1572
1573 <div class="footer-content">
1574 @(GetValue("Item.Area.Adresse"))
1575 </div>
1576
1577 <div class="footer-content">
1578 @(GetValue("Item.Area.Kontaktinformation"))
1579 </div>
1580
1581 <div class="footer-content">
1582 @(GetValue("Item.Area.Bningstider"))
1583 </div>
1584
1585 </div>
1586
1587 <div class="footer__content">
1588
1589 <div class="footer-content">
1590 @(GetValue("Item.Area.Adresse_2"))
1591 </div>
1592
1593 <div class="footer-content">
1594 @(GetValue("Item.Area.Kontaktinformation_2"))
1595 </div>
1596
1597 <div class="footer-content">
1598 @(GetValue("Item.Area.Bningstider_2"))
1599 </div>
1600
1601 </div>
1602
1603
1604 <div class="footer__content">
1605
1606 <div class="footer-content">
1607 </div>
1608
1609 <div class="footer-content">
1610 </div>
1611
1612 <div class="footer-content">
1613 @(GetValue("Item.Area.NavigationText"))
1614 </div>
1615
1616 </div>
1617 </div>
1618
1619 <div class="col-md-2 footer-content footer-content--social">
1620
1621 <div class="footer-social-icons">
1622 @if( !string.IsNullOrEmpty( GetString("Item.Area.Facebook") ) ){
1623 <a class="facebook-link" href="@facebookUrl" target="_blank">
1624 <div class="li-facebook"><i class="fab fa-facebook-f"></i></div>
1625 </a>
1626 }
1627
1628 @if ( !string.IsNullOrEmpty ( GetString("Item.Area.LinkedIn") ) ) {
1629 <a class="linkedin-link" href="@linkedInUrl" target="_blank">
1630 <div class="li-linkedin"><i class="fab fa-linkedin-in"></i></div>
1631 </a>
1632 }
1633
1634 @if( !string.IsNullOrEmpty( GetString("Item.Area.Instagram") ) ){
1635 <a class="instagram-link" href="@instagramUrl" target="_blank">
1636 <div class="li-instagram"><i class="fab fa-instagram"></i></div>
1637 </a>
1638 }
1639
1640 </div>
1641 </div>
1642 </div>
1643 </div>
1644 </div>
1645 </div>
1646 </div>
1647 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/jquery.2.2.4.js"></script>
1648 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/bootstrap.js"></script>
1649 <!-- <script type="text/javascript" src="assets/javascripts/main.js"></script> -->
1650 <!-- <script type="text/javascript" src="assets/javascripts/main.min.js"></script> -->
1651 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/mmenu/mmenu.polyfills.js"></script>
1652 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/mmenu/mmenu.js"></script>
1653 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/mmenu/mmenu-app.js"></script>
1654 <script type="text/javascript" src="/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/sticky-sidebar.js"></script>
1655 <!--@Snippet(Scripts)-->
1656
1657 <script>
1658
1659 var scrollToTopButton = $('#scrollToTop');
1660 $(scrollToTopButton).click(function() {
1661 $("html, body").animate({ scrollTop: 0 }, "slow");
1662 return false;
1663 });
1664
1665
1666 $(window).on('scroll', function(){
1667 var s = $(window).scrollTop(),
1668 d = $(document).height(),
1669 c = $(window).height();
1670
1671 var scrollPercent = (s / (d - c)) * 100;
1672
1673 if (scrollPercent > 15) {
1674 $(scrollToTopButton).css("opacity", "1");
1675 } else if (scrollPercent < 15) {
1676 $(scrollToTopButton).css("opacity", "0");
1677 }
1678 })
1679 </script>
1680
1681 <script type="text/javascript">
1682
1683 var mq = window.matchMedia( "(min-width: 992px)" );
1684 if (mq.matches) {
1685 var stickySidebar = $('.sidebar__inner');
1686
1687 if ($(stickySidebar).length > 0) {
1688 var sidebar = new StickySidebar('.sidebar', {
1689 topSpacing: 20,
1690 bottomSpacing: 20,
1691 containerSelector: '#page .main-content',
1692 innerWrapperSelector: '.sidebar__inner'
1693 });
1694 }
1695 }
1696 </script>
1697
1698 <script type="text/javascript">
1699 $(function() {
1700 if( $('li.language-select').length > 0 )
1701 {
1702 @foreach(LoopItem lang in GetLoop("Languages")) {
1703 string CultureCode = lang.GetString("Culture").Substring(3,2);
1704 if (CultureCode == "GB") { CultureCode = "EN"; }
1705 //if (CultureCode == "US") { CultureCode = "GROUP"; }
1706 if ( !lang.GetBoolean("IsCurrent") ) {
1707 <text>
1708 $('li.language-select').append("<a class='lang' href='/Default.aspx?Id=@lang.GetString("PageID")'>@CultureCode</a>");
1709 </text>
1710 }
1711 }
1712
1713 @if( GetLoop("Languages").Count() <= 1 )
1714 {
1715 <text>
1716 $('li.language-select').hide();
1717 </text>
1718 }
1719 }
1720 });
1721 </script>
1722
1723 <script type="text/javascript">
1724 _linkedin_partner_id = "4895842";
1725 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
1726 window._linkedin_data_partner_ids.push(_linkedin_partner_id);
1727 </script><script type="text/javascript">
1728 (function(l) {
1729 if (!l){window.lintrk = function(a,b){window.lintrk.q.push([a,b])};
1730 window.lintrk.q=[]}
1731 var s = document.getElementsByTagName("script")[0];
1732 var b = document.createElement("script");
1733 b.type = "text/javascript";b.async = true;
1734 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
1735 s.parentNode.insertBefore(b, s);})(window.lintrk);
1736 </script>
1737 <noscript>
1738 <img height="1" width="1" style="display:none;" alt="" src="https://px.ads.linkedin.com/collect/?pid=4895842&fmt=gif">
1739 </noscript>
1740
1741 <script>
1742 $(function() {
1743 $('.secondary-navigation .nav-headline h2.menu-slide').click(function() {
1744 $('#secondary-navigation').slideToggle('medium');
1745 });
1746
1747 // Ensure 'text in columns' module elements start at the same line
1748 jQuery('.text-in-columns').each(function() {
1749 var leftTitleSelector = '.content-row__left .content-row__title';
1750 var rightTitleSelector = '.content-row__right .content-row__title';
1751
1752 var titleHeightLeft = jQuery(this).find(leftTitleSelector).height();
1753 var titleHeightRight = jQuery(this).find(rightTitleSelector).height();
1754
1755 var minTitleHeight = titleHeightLeft > titleHeightRight ? titleHeightLeft : titleHeightRight;
1756 jQuery(this).find(leftTitleSelector).height(minTitleHeight)
1757 jQuery(this).find(rightTitleSelector).height(minTitleHeight)
1758 });
1759 });
1760 </script>
1761 <script type="text/javascript" src='/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/collapsedText.js'></script>
1762 <script type="text/javascript" src='/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/textInColumns.js'></script>
1763 <script type="text/javascript" src='/Files/Templates/Designs/GlobalCarLeasing/assets/javascripts/accordion.js'></script>
1764
1765 </body>
1766 </html>
1767