Error executing template "Designs/BfaPortalen/_parsed/Branche_Side.parsed.cshtml"
System.ArgumentException: Get page requires a page ID greater than zero, page ID was 0
   at Dynamicweb.Core.Ensure.That[TException](Boolean condition, String message)
   at Dynamicweb.Content.PageService.GetPage(Int32 pageId)
   at CompiledRazorTemplates.Dynamic.RazorEngine_98aff94bbb214794ac25b33516166fa7.Execute() in D:\dynamicweb.net\Solutions\bfahandel.staging.dynamicweb-cms.com\Files\Templates\Designs\BfaPortalen\_parsed\Branche_Side.parsed.cshtml:line 472
   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 @using System.Web; 2 @using Dynamicweb.Rendering; 3 @using Dynamicweb.Content; 4 @using Dynamicweb.Data; 5 @using Dynamicweb.Frontend; 6 @using Dynamicweb.Frontend.Navigation 7 8 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 9 10 @{ 11 // variables 12 var scheme = HttpContext.Current.Request.Url.Scheme; 13 var host = HttpContext.Current.Request.Url.Host; 14 var pageUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("Default.aspx?ID=" + GetGlobalValue("Global:Page.ID")); 15 16 // pdf 17 var pdfMode = HttpContext.Current.Request["pdf"]; 18 19 string pdfclass = (pdfMode == "true") ? "pdf-print" : ""; 20 21 var area = Pageview.Area; 22 var systemName = GetString("Item.Area.Systemnavn"); 23 24 var websiteTitel = GetString("Item.Area.Titel"); 25 var logoNormal = GetString("Item.Area.LogoNormal"); 26 var logoNegative = GetString("Item.Area.LogoNegativ"); 27 var frontPageId = GetString("Item.Area.Forside"); 28 var newsPageId = GetString("Item.Area.Nyheder"); 29 var searchPageId = GetString("Item.Area.Soegeresultater"); 30 var materialsPageId = GetString("Item.Area.Materialer"); 31 var newsletterParagraphId = GetInteger("Item.Area.Nyhedsbrev"); 32 var googleAnalytics = GetString("Item.Area.GoogleAnalytics"); 33 var googleAnalyticsBody = GetString("Item.Area.GoogleAnalyticsBody"); 34 var linkedIn = GetString("Item.Area.LinkedIn"); 35 var facebook = GetString("Item.Area.Facebook"); 36 var privacyPoliticsPageId = GetString("Item.Area.Privatlivspolitik"); 37 var cookiePageId = GetString("Item.Area.Cookie"); 38 var brancheSider = getBrancheSider(area, systemName); 39 40 var emner = getEmner(area, systemName); 41 42 var branches = getBranches(area, systemName); 43 var branchSelectedId = 0; 44 var branchSelectedTitle = ""; 45 var sessionBranch = HttpContext.Current.Request["branch"] ?? HttpContext.Current.Session["branch"]; 46 if(sessionBranch != null) 47 { 48 var branchSelected = branches.Find(x => x.Id.ToString() == sessionBranch.ToString()); 49 if (branchSelected != null) { 50 branchSelectedId = branchSelected.Id; 51 branchSelectedTitle = branchSelected.Title; 52 HttpContext.Current.Session["branch"] = sessionBranch; 53 } 54 else 55 { 56 HttpContext.Current.Session["branch"] = ""; 57 } 58 } 59 var categories = getCategories(area, systemName); 60 var types = getTypes(area, systemName); 61 62 var ogImg = GetString("Item.Billede"); 63 ogImg = (!string.IsNullOrEmpty(Pageview.Page.TopImage)) ? "/Files/"+Pageview.Page.TopImage : ogImg; 64 var ogTitle = GetString("Title"); 65 var ogDescription = GetString("Meta.Description"); 66 67 68 // translations 69 var textSearchButton = Translate("Search", "Søg"); 70 var textSearchPlaceholder = Translate("Enter keyword...", "Indtast søgeord..."); 71 var textName = Translate("Name", "Name"); 72 var textEmail = Translate("Email", "Email"); 73 74 75 var topPageId = GetString("DwPageID_1"); 76 var topPageClass = "top-" + topPageId + " "; 77 if(topPageId == "3307"){ 78 topPageClass += "godstransport"; 79 } 80 if(topPageId == "3347"){ 81 topPageClass += "persontransport"; 82 } 83 if(topPageId == "3374"){ 84 topPageClass += "lagreogvareterminaler"; 85 } 86 if(topPageId == "3360"){ 87 topPageClass += "brandogredning"; 88 } 89 if(topPageId == "3387"){ 90 topPageClass += "jernbanetransport"; 91 } 92 if(topPageId == "3400"){ 93 topPageClass += "lufttransport"; 94 } 95 96 var pageIdClass = "page-" + GetString("DwPageID"); 97 98 var farver = getFarver(area, systemName); 99 100 var themeFarve = (!string.IsNullOrEmpty(GetString("Item.Farver") ) ? GetString("Item.Farver") : "1"); 101 var extranetUserId = GetString("DW_extranet_AccessUserID"); 102 103 if (GetString("DwPageID_1") != "20186") { 104 themeFarve = "1"; 105 } 106 } 107 108 <!doctype html> 109 <html lang="da" itemscope="" itemtype="https://schema.org/Organization"> 110 <head> 111 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="4ef71bed-c131-4d98-b60a-0e61262678de" data-blockingmode="auto" type="text/javascript"></script> 112 <meta charset="utf-8"> 113 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 114 115 <meta name="author" content=""> 116 <link rel="icon" href="/Files/Templates/Designs/BfaPortalen/img/BFA-square-512.png"> 117 <meta property="og:site_name" content="BFA Portalen"> 118 <script type="application/ld+json"> 119 { 120 "@@context" : "https://schema.org", 121 "@@type" : "WebSite", 122 "name" : "BFA Portalen", 123 "url" : "https://bfaportalen.dk" 124 } 125 </script> 126 <title>@GetValue("Title")</title> 127 @GetValue("MetaTags") 128 @GetValue("CopyRightNotice") 129 130 @if (!string.IsNullOrEmpty(ogTitle)) { 131 <meta property="og:title" content="@ogTitle"> 132 } 133 @if (!string.IsNullOrEmpty(ogDescription)) { 134 <meta property="og:description" content="@ogDescription"> 135 } 136 @if (!string.IsNullOrEmpty(ogImg)) { 137 string ogImagePath = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + ogImg; 138 <meta property="og:image" content="@ogImagePath"> 139 } 140 141 <!-- google font --> 142 <link href="https://fonts.googleapis.com/css?family=Archivo:400,500,600" rel="stylesheet"> 143 <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,500,600" rel="stylesheet"> 144 145 <!-- font awesome --> 146 <link href="/Files/Templates/Designs/BfaPortalen/css/libs/fontawesome/css/all.css" rel="stylesheet"> 147 148 <!-- css --> 149 <link href="/Files/Templates/Designs/BfaPortalen/css/setoff.css?v=1.02" rel="stylesheet"> 150 <link href="/Files/Templates/Designs/BfaPortalen/css/styles.css?v=1.29" rel="stylesheet"> 151 <link href="/Files/Templates/Designs/BfaPortalen/css/pb-styles.css?v=1.2" rel="stylesheet"> 152 <link href="/Files/Templates/Designs/BfaPortalen/css-service/service-styles.css?v=1.4" rel="stylesheet"> 153 <link href="/Files/Templates/Designs/BfaPortalen/js/libs/slick-1.8.1/slick/slick.css" rel="stylesheet"> 154 <link href="/Files/Templates/Designs/BfaPortalen/js/libs/slick-1.8.1/slick/slick-theme-transport.css" rel="stylesheet"> 155 <link rel="stylesheet" href="/Files/Templates/Designs/BfaPortalen/js/libs/plyr-3.7.8/plyr.css"> 156 <!--<link href="css/print.min.css" rel="stylesheet" media="print">--> 157 158 <style> 159 iframe { 160 display:block !important; 161 } 162 163 .cards .ul.list .li { 164 margin-top: 0px; 165 margin-bottom: 12px; 166 } 167 @@media screen and (max-width: 767px) { 168 form[name="SearchForm1"] input[type="text"] { 169 width: 110px; 170 } 171 } 172 .topmessage { 173 174 } 175 .materialcard.apv-book .image img, .materialcard.apv-actionplan .image img, .materialcard.apv-questionnaire .image img, .materialcard.apv-checklist .image img, .materialcard.apv-upload .image img { 176 display:none; 177 } 178 .materialcard.apv-book .image, .materialcard.apv-actionplan .image, .materialcard.apv-questionnaire .image, .materialcard.apv-checklist .image, .materialcard.apv-upload .image { 179 display:flex; 180 justify-content: center; 181 align-items: center; 182 background-color: var(--theme-secondary-background-color); 183 color: var(--theme-background-color); 184 } 185 .materialcard.apv-book svg { 186 width: 120px; 187 } 188 .materialcard.apv-actionplan svg { 189 width: 90px; 190 } 191 .materialcard.apv-questionnaire svg { 192 width: 100px; 193 } 194 .materialcard.apv-checklist svg { 195 width: 75px; 196 } 197 .materialcard.apv-upload svg { 198 width: 135px; 199 } 200 </style> 201 <!-- google analytics --> 202 @googleAnalytics 203 204 <!-- dw standard scripts --> 205 206 207 <style> 208 209 @foreach (var farve in farver) 210 { 211 var Tekstfarve = farve.Tekstfarve; 212 var Baggrundsfarve = farve.Baggrundsfarve; 213 var SekTekstfarve = (!string.IsNullOrEmpty(farve.SekTekstfarve)) ? farve.SekTekstfarve : farve.Tekstfarve; 214 var SekBaggrundsfarve = (!string.IsNullOrEmpty(farve.SekBaggrundsfarve)) ? farve.SekBaggrundsfarve : farve.Baggrundsfarve; 215 216 /* @farve.Title */ 217 @(".theme-"+ farve.Id + " { --theme-text-color: " + Tekstfarve + "; --theme-background-color: " + Baggrundsfarve + "; --theme-secondary-text-color: " + SekTekstfarve + "; --theme-secondary-background-color: " + SekBaggrundsfarve + "; --theme-mobile-text-color: " + farve.MobilTekstfarve + "; --theme-mobile-background-color: " + farve.MobilBaggrundsfarve + "; } ") 218 @(".theme2-"+ farve.Id + " { --theme2-text-color: " + Tekstfarve + "; --theme2-background-color: " + Baggrundsfarve + "; --theme2-secondary-text-color: " + SekTekstfarve + "; --theme2-secondary-background-color: " + SekBaggrundsfarve + "; --theme2-mobile-text-color: " + farve.MobilTekstfarve + "; --theme2-mobile-background-color: " + farve.MobilBaggrundsfarve + "; } ") 219 } 220 @*foreach (var farve in farver) 221 { 222 @("@media (max-width: 767px) {") 223 /* @farve.Title */ 224 @(".theme-mobile-"+ farve.Id + " { --theme-text-color: " + farve.Tekstfarve + "; --theme-background-color: " + farve.Baggrundsfarve + " } ") 225 @("}") 226 }*@ 227 228 </style> 229 @GetValue("Stylesheets") 230 @GetValue("Javascripts") 231 </head> 232 233 <body class="@topPageClass @pageIdClass theme-@themeFarve @pdfclass" id="body" data-area="@area.ID" data-uid="@extranetUserId"> 234 235 236 <nav class="navbar navbar-expand-md navbar-white bg-white"> 237 <div class="container"> 238 239 <a class="navbar-brand navbar-brand--negative" href="/"> 240 <img src="@logoNegative" alt="@websiteTitel"> 241 </a> 242 <a class="navbar-brand navbar-brand--normal" href="/"> 243 <img src="@logoNormal" alt="@websiteTitel"> 244 </a> 245 246 <div class="navbar-search-toggler-parent"> 247 <button class="navbar-search-toggler" type="button" data-toggle="modal" data-target="#searchModal"><i class="far fa-search"></i></button> 248 249 <button class="navbar-toggler" type="button"> 250 <i class="far fa-bars"></i> 251 </button> 252 </div> 253 254 <div id="navbar-main" class="collapse navbar-collapse"> 255 256 <ul class="navbar-nav"> 257 258 <button class="navbar-close"><i class="far fa-times"></i></button> 259 260 <div class="logo"> 261 <a class="navbar-brand" href="/"><img src="@logoNormal" alt="@websiteTitel"></a> 262 </div> 263 264 <li class="nav-item dropdown"> 265 <a class="nav-link dropdown-toggle" href="" id="brancher"><span class="text">Brancher</span><i class="fal fa-angle-down"></i></a> 266 <div class="dropdown-menu" aria-labelledby="brancher"> 267 <div class="container"> 268 <section class="branches menu container"> 269 <div class="row"> 270 <div class="col-sm-12"> 271 <div class="dd-title"><h3>Brancher</h3><button>&times;</button></div> 272 273 <ul class="nav-brancher"> 274 @*foreach (var branch in branches) 275 { 276 var id = branch.Id; 277 var title = branch.Title; 278 var description = branch.Description; 279 var image = branch.Image; 280 var link = "Default.aspx?ID=" + branch.Id; 281 var color = ""; 282 <li class="col-sm-12 col-md-6 col-lg-4"> 283 <article itemtype="https://schema.org/Article" itemscope="" class="@color"> 284 <a itemprop="url" href="@link"> 285 <div class="image"> 286 <img src="@image" alt="@title" itemprop="image"> 287 </div> 288 <h3 itemprop="name">@title</h3> 289 </a> 290 </article> 291 </li> 292 }*@ 293 294 @foreach (var branch in branches) 295 { 296 //var p = PageService.GetPage(branch.Id); 297 var id = branch.Id; 298 var pageid = branch.PageId; 299 var title = branch.Title; 300 var description = branch.Description; 301 var image = branch.Image; 302 var link = "Default.aspx?ID=" + branch.Id; 303 var color = ""; 304 305 306 var children = Dynamicweb.Content.Services.Pages.GetPagesByParentID(pageid); 307 var childCounter = 0; 308 var break1 = branch.UndermenuPunkter1; 309 var break2 = break1 + branch.UndermenuPunkter2; 310 311 <li class="theme-@branch.Farver "> 312 <article itemtype="https://schema.org/Article" itemscope="" class="@color"> 313 <div class="links"> 314 <div class="main" data-href="Default.aspx?ID=@pageid"> 315 @title 316 </div> 317 @foreach (var child in children) 318 { 319 320 var breakClass = (childCounter == break1 || childCounter == break2) ? 321 "clear" : ""; 322 childCounter++; 323 324 325 <a class="sub @breakClass" itemprop="url" href="Default.aspx?ID=@child.ID"> 326 @child.MenuText 327 </a> 328 } 329 330 </div> 331 <div class="image"> 332 @if (!string.IsNullOrEmpty(image)) 333 { 334 <img src="/admin/public/getimage.aspx?Image=@image&width=240" alt="@title" itemprop="image"> 335 } 336 </div> 337 </article> 338 </li> 339 } 340 </ul> 341 </div> 342 343 344 </div> 345 </section> 346 </div> 347 </div> 348 </li> 349 <li class="nav-item dropdown"> 350 <a class="nav-link dropdown-toggle" href="" id="emner"><span class="text">Emner</span><i class="fal fa-angle-down"></i></a> 351 <div class="dropdown-menu" aria-labelledby="emner"> 352 <div class="container"> 353 <section class="topics menu container"> 354 <div class="row"> 355 <div class="col-sm-12"> 356 <div class="dd-title"><h3>Emner</h3><button>&times;</button></div> 357 358 @{ 359 var navigationSettingsEmner = new NavigationSettings(); 360 navigationSettingsEmner.StartLevel = 1; 361 navigationSettingsEmner.StopLevel = 10; 362 navigationSettingsEmner.ExpandMode = ExpandMode.All; 363 navigationSettingsEmner.RootPageId = 20199; 364 } 365 @Navigation.RenderNavigation("Navigation/Emner.cshtml", navigationSettingsEmner) 366 </div> 367 </div> 368 </section> 369 </div> 370 </div> 371 </li> 372 <!--<li class="nav-item"> 373 <a class="nav-link" href="Default.aspx?ID=3340"><span class="text">Om os</span></a> 374 </li> 375 <li class="nav-item"> 376 <a class="nav-link" href="Default.aspx?ID=3341"><span class="text">Kontakt</span></a> 377 </li>--> 378 </ul> 379 </div> 380 381 <div class="search"> 382 <a class="search-toggler" href="/Default.aspx?ID=20240"><i class="fas fa-search"></i> <span>Søg</span></a> 383 <!--<button class="search-toggler" type="button" data-toggle="modal" data-target="#searchModal"><i class="fas fa-search"></i> Søg</button> 384 <form action="Default.aspx" method="get"> 385 <input name="ID" value="@searchPageId" type="hidden" autocomplete="off"> 386 <input class="form-control" type="text" placeholder="@textSearchPlaceholder" name="q"> 387 <button class="btn search" type="submit"><i class="fal fa-search"></i></button> 388 </form>--> 389 390 <div class="search-menu dropdown-menu "> 391 <div class="container"> 392 <section classs="menu container"> 393 <div class="row"> 394 <div class="col-sm-12"> 395 396 <div class="search-card "> 397 <h2>Søg</h2> 398 <form action="/Default.aspx" method="GET"> 399 <input name="ID" value="@searchPageId" type="hidden" autocomplete="off"> 400 401 <div class="search-form-group"> 402 <input type="text" name="s" class="form-control" placeholder="Indtast søgeord" autocomplete="off"> 403 <div class="filters"> 404 <div class="filter-dropdown"> 405 <select name="branche" class="form-control"> 406 <option value="">Branche</option> 407 @foreach (var branche in brancheSider.OrderBy(x=>x.Title).ToList()) 408 { 409 <option>@branche.Title</option> 410 } 411 </select> 412 </div> 413 <div class="filter-dropdown"> 414 <select name="emne" class="form-control"> 415 <option value="">Emne</option> 416 @foreach (var emne in emner.OrderBy(x=>x.Title).ToList()) 417 { 418 <option>@emne.Title</option> 419 } 420 </select> 421 </div> 422 <div class="filter-dropdown"> 423 <select name="type" class="form-control"> 424 <option value="">Type</option> 425 @foreach (var cat in categories.OrderBy(x=>x.Title).ToList()) 426 { 427 <option>@cat.Title</option> 428 } 429 </select> 430 </div> 431 </div> 432 <input type="submit" class="btn btn-primary" value="Søg"> 433 </div> 434 </form> 435 </div> 436 437 </div> 438 </div> 439 </section> 440 </div> 441 </div><!--search-menu--> 442 443 444 </div> 445 446 </div> 447 </nav> 448 449 <main class="main"> 450 @using Dynamicweb.Rendering; 451 @using Dynamicweb.Content.Items; 452 @using Dynamicweb.Data; 453 @using HtmlAgilityPack; 454 @using Dynamicweb.Frontend.Navigation 455 456 @inherits RazorTemplateBase<RazorTemplateModel<Template>> 457 458 459 @{ 460 var pageId = Pageview.ID; 461 var brancheTopTitle = GetString("DwPageName_3"); 462 var brancheTopId = GetInteger("DwPageID_3"); 463 var pageUrlAbsolute = scheme + "://" + host + GetGlobalValue("Global:Pageview.Url").ToString(); 464 465 var materials = getMaterials(area, systemName, pageId); 466 467 var subjectTitle = GetString("Item.Titel"); 468 var subjectDescription = GetString("Item.Beskrivelse"); 469 var subjectImage = GetString("Item.Billede"); 470 var subjectImageDescription = GetString("Item.BilledeBeskrivelse"); 471 472 var pageItem = Dynamicweb.Content.Services.Pages.GetPage(brancheTopId).Item; 473 var MainFarver = (pageItem != null) ? pageItem["Farver"] : ""; 474 475 476 } 477 478 <div class="branche--side"> 479 @if(!string.IsNullOrEmpty(GetString("DwContent(intro)"))){ 480 <div id="intro">@GetValue("DwContent(intro)")</div> 481 } 482 483 484 @{ 485 var navigationSettingsIndhold = new NavigationSettings(); 486 navigationSettingsIndhold.StartLevel = 4; 487 navigationSettingsIndhold.StopLevel = 10; 488 navigationSettingsIndhold.ExpandMode = ExpandMode.All; 489 } 490 <section class="indhold container"> 491 <div class="row"> 492 <div class="col-sm-12"> 493 <h2>Indhold</h2> 494 @Navigation.RenderNavigation("Navigation/BrancheIndhold.cshtml", navigationSettingsIndhold) 495 </div> 496 </div> 497 </section> 498 499 @*<section class="latest-materials materials materials--page cards box container theme-@MainFarver "> 500 <div class="row"> 501 <div class="col-sm-12"> 502 <h2>Nyheder</h2> 503 <div class="xdxwxcontent" id="materialer" title="Materialer" data-settings="template:materiale-slide.cshtml"></div> 504 </div> 505 </div> 506 </section>*@ 507 @if(!string.IsNullOrEmpty(GetString("DwContent(newsslideshow)"))){ 508 <section class="news-slideshow container theme-@MainFarver "> 509 <div class="forside-card xcontainer"> 510 <div class="xrow"> 511 <div class="xcol-md-12"> 512 513 <h2>Nyheder</h2> 514 <section class="slideshow" id="newsslideshow">@GetValue("DwContent(newsslideshow)")</section> 515 516 </div> 517 </div> 518 </div> 519 </section> 520 } 521 522 @if(!string.IsNullOrEmpty(GetString("DwContent(contact)"))){ 523 <section class="contact container theme-@MainFarver "> 524 <div class="row "> 525 <div class="col-sm-12"> 526 <div class="background-secondary"> 527 <h2>Kontakt</h2> 528 <ul id="contact" class="row content" itemprop="text">@GetValue("DwContent(contact)")</ul> 529 </div> 530 </div> 531 </div> 532 </section> 533 } 534 </div> 535 536 537 538 539 @functions { 540 541 542 public List<Material> getMaterials(Area area, string systemName, int branchSelectedId) 543 { 544 var materials = new List<Material>(); 545 546 var materialDataReader = Database.CreateDataReader( 547 /*CommandBuilder.Create("SELECT * FROM Paragraph AS p INNER JOIN ItemType_" + systemName + "Materiale AS m ON p.ParagraphItemID = m.Id WHERE p.ParagraphShowParagraph = {0} AND p.ParagraphItemType = {1} AND CAST(m.Kategori AS INT) IN ({2}) AND (',' + RTRIM(" + subject + ") + ',') LIKE '%,' + {3} + ',%' AND (',' + RTRIM(m.Brancher) + ',') LIKE '%,' + {4} + ',%' Order By m.Udgivelsesdato DESC", "True", systemName + "Materiale", groupCategories, GetString("Item.Id"), branchSelectedId.ToString()) 548 */ 549 CommandBuilder.Create("SELECT * FROM Paragraph AS p INNER JOIN ItemType_" + systemName + "Materiale AS m ON p.ParagraphItemID = m.Id WHERE p.ParagraphShowParagraph = {0} AND p.ParagraphItemType = {1} AND (',' + RTRIM(m.Brancher) + ',') LIKE '%,' + {2} + ',%' Order By m.Udgivelsesdato DESC", "True", systemName + "Materiale", branchSelectedId.ToString()) 550 551 ); 552 553 using (var itemRenderReader = materialDataReader) 554 { 555 while (itemRenderReader.Read()) 556 { 557 var material = new Material 558 { 559 Id = int.Parse(itemRenderReader["Id"].ToString()), 560 ParagraphId = int.Parse(itemRenderReader["ParagraphID"].ToString()), 561 ParagraphItemId = int.Parse(itemRenderReader["ParagraphItemId"].ToString()), 562 Title = itemRenderReader["Titel"].ToString(), 563 Description = itemRenderReader["Beskrivelse"].ToString(), 564 Content = itemRenderReader["Indhold"].ToString(), 565 Image = itemRenderReader["Billede"].ToString(), 566 Link = itemRenderReader["Link"].ToString(), 567 LinkTarget = itemRenderReader["Maal"].ToString(), 568 Category = (!string.IsNullOrEmpty(itemRenderReader["Kategori"].ToString())) ? int.Parse(itemRenderReader["Kategori"].ToString()) : 0, 569 Type = (!string.IsNullOrEmpty(itemRenderReader["Type"].ToString())) ? int.Parse(itemRenderReader["Type"].ToString()) : 0, 570 Published = (!string.IsNullOrEmpty(itemRenderReader["Udgivelsesdato"].ToString())) ? Convert.ToDateTime(itemRenderReader["Udgivelsesdato"].ToString()).ToString("yyyy") : "", 571 Images = new List<Image>(), 572 Branches = itemRenderReader["Brancher"].ToString(), 573 Emner = itemRenderReader["Emner"].ToString(), 574 CssKlasse = itemRenderReader["CssKlasse"].ToString(), 575 }; 576 577 materials.Add(material); 578 } 579 itemRenderReader.Close(); 580 itemRenderReader.Dispose(); 581 } 582 583 return materials; 584 } 585 586 } 587 </main> 588 589 <footer class="footer archivo"> 590 <div class="container"> 591 <div class="row"> 592 <div class="col-md-4 newsletter newsletter-signup-form"> 593 <h4>Tilmeld nyhedsbrev</h4> 594 @RenderParagraphContent(91603) 595 @*<form class="newsletter-signup-form"> 596 <div class="form-group"> 597 <input type="text" class="form-control" id="name" placeholder="Navn"> 598 </div> 599 <div class="form-group"> 600 <input type="text" class="form-control" id="name" placeholder="E-mail"> 601 </div> 602 <div class="form-group"> 603 <select class="form-control"> 604 <option value="1">Vælg branche</option> 605 </select> 606 <a href="#">Privatlivspolitik</a> 607 </div> 608 <div class="form-group"> 609 <input type="checkbox" id="accept" name="accept"> Jeg bekræfter at have læst vores privatlivspolitik. 610 </div> 611 <button type="submit" class="btn btn-primary">Tilmeld dig</button> 612 613 </form>*@ 614 </div> 615 <div class="col-md-4 menu"> 616 <div class="row"> 617 <div class="col-md-6 menu-a"> 618 <h4>Om os</h4> 619 <div class="nav"> 620 621 @{ 622 var footerNavigationSettings = new NavigationSettings(); 623 footerNavigationSettings.StartLevel = 1; 624 footerNavigationSettings.StopLevel = 10; 625 footerNavigationSettings.ExpandMode = ExpandMode.All; 626 footerNavigationSettings.RootPageId = 20348; 627 } 628 @Navigation.RenderNavigation("Navigation/Vertical.cshtml", footerNavigationSettings) 629 630 <ul class="navbar-nav flex-column flex-fill "> 631 <li class="nav-item theme- "> 632 <div class="d-flex align-items-center"> 633 <a class="nav-link flex-fill text-reset " href="/Default.aspx?ID=@cookiePageId"> 634 <span class="">Cookie politik</span> 635 </a> 636 637 </div> 638 </li> 639 @if (!string.IsNullOrEmpty(privacyPoliticsPageId)) 640 { 641 <li class="nav-item theme- "> 642 <div class="d-flex align-items-center"> 643 <a class="nav-link flex-fill text-reset " href="/Default.aspx?ID=@privacyPoliticsPageId"> 644 <span class="">Privatlivspolitik</span> 645 </a> 646 647 </div> 648 </li> 649 } 650 </ul> 651 652 653 </div> 654 </div> 655 @if (!string.IsNullOrEmpty(linkedIn) || !string.IsNullOrEmpty(facebook) || !string.IsNullOrEmpty(privacyPoliticsPageId)) 656 { 657 <div class="col-md-6"> 658 <h4>SoMe</h4> 659 <div class="social"> 660 @if (!string.IsNullOrEmpty(linkedIn) || !string.IsNullOrEmpty(facebook)) 661 { 662 <ul> 663 @if (!string.IsNullOrEmpty(linkedIn)) 664 { 665 <li> 666 <a href="@linkedIn" target="_blank"><i class="fab fa-linkedin-in"></i></a> 667 </li> 668 } 669 @if (!string.IsNullOrEmpty(facebook)) 670 { 671 <li> 672 <a href="@facebook" target="_blank"><i class="fab fa-facebook-f"></i></a> 673 </li> 674 } 675 </ul> 676 } 677 </div> 678 679 </div> 680 } 681 682 </div> 683 684 685 686 </div> 687 <div class="col-md-4 contact"> 688 <h4>Adresse</h4> 689 <div class="address"> 690 @foreach (var item in GetLoop("Item.Area.Adresser")) 691 { 692 var title = item.GetString("Item.Area.Adresser.Titel"); 693 var address = item.GetString("Item.Area.Adresser.Adresse"); 694 var zip = item.GetString("Item.Area.Adresser.Postnummer"); 695 var city = item.GetString("Item.Area.Adresser.By"); 696 697 var name = item.GetString("Item.Area.Adresser.Navn"); 698 var phone = item.GetString("Item.Area.Adresser.Telefon"); 699 var email = item.GetString("Item.Area.Adresser.Email"); 700 701 <div class="xaddress" itemtype="http://schema.org/PostalAddress" itemscope=""> 702 <p>@title</p> 703 <p itemprop="streetAddress">@address<br> 704 <span itemprop="postalCode">@zip</span> <span itemprop="addressLocality">@city</span></p> 705 </div> 706 } 707 @foreach (var item in GetLoop("Item.Area.Adresser")) 708 { 709 var name = item.GetString("Item.Area.Adresser.Navn"); 710 var phone = item.GetString("Item.Area.Adresser.Telefon"); 711 var email = item.GetString("Item.Area.Adresser.Email"); 712 /*if (!string.IsNullOrEmpty(name)) 713 { 714 <h4>Konsulent</h4> 715 } 716 else 717 { 718 <h4>Kontakt</h4> 719 }*/ 720 <p> 721 @if (!string.IsNullOrEmpty(name)) { @name <br> } 722 @if (!string.IsNullOrEmpty(phone)) { <a href="tel:@phone" itemprop="telephone">@phone</a> <br> } 723 @if (!string.IsNullOrEmpty(email)) { <a href="mailto:@email" itemprop="email">@email</a> } 724 </p> 725 } 726 </div> 727 728 <div class="logo"> 729 <img src="@logoNegative" alt="@websiteTitel"> 730 </div> 731 </div> 732 </div> 733 734 735 736 737 </div> 738 739 </footer> 740 741 <div id="searchModal" class="modal fade" tabindex="-1" role="dialog"> 742 <div class="modal-dialog" role="document"> 743 <div class="modal-content"> 744 <div class="modal-body"> 745 <div class="container"> 746 <div class="row"> 747 <div class="search-field col-sm-12"> 748 <form action="Default.aspx" method="get"> 749 <input name="ID" value="@searchPageId" type="hidden" autocomplete="off"> 750 <input type="text" name="q" placeholder="@textSearchPlaceholder"> 751 <button type="submit"><i class="fal fa-search"></i></button> 752 </form> 753 </div> 754 </div> 755 </div> 756 </div> 757 </div> 758 </div> 759 </div> 760 761 <div id="videoModal" class="modal fade" tabindex="-1" role="dialog"> 762 <div class="modal-dialog" role="document"> 763 <div class="modal-content"> 764 <button type="button" class="modal-close" data-dismiss="modal">&times;</button> 765 <div class="modal-body"> 766 </div> 767 </div> 768 </div> 769 </div> 770 771 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/jquery/jquery.js" data-cookieconsent="ignore"></script> 772 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/bootstrap/bootstrap.js" data-cookieconsent="ignore"></script> 773 774 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/lightslider/lightslider.js" data-cookieconsent="ignore"></script> 775 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/clipboard2.0.11.min.js" data-cookieconsent="ignore"></script> 776 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/stickybits/stickybits.js" data-cookieconsent="ignore"></script> 777 <script src="/Files/Templates/Designs/BfaPortalen/js/scripts.js?v=1.164" data-cookieconsent="ignore"></script> 778 <script src="/Files/Templates/Designs/BfaPortalen/js/pb-scripts.js?v=1.61" data-cookieconsent="ignore"></script> 779 <script src="/Files/Templates/Designs/BfaPortalen/js/pb-scripts2.js?v=1.931" data-cookieconsent="ignore"></script> 780 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/slick-1.8.1/slick/slick.min.js" data-cookieconsent="ignore"></script> 781 <script src="/Files/Templates/Designs/BfaPortalen/js/libs/plyr-3.7.8/plyr.js" data-cookieconsent="ignore"></script> 782 <script src="/Files/Templates/Designs/BfaPortalen/js/favorites.js?v=1.2" data-cookieconsent="ignore"></script> 783 <script src="/Files/Templates/Designs/BfaPortalen/js/analytics.js?v=1.1"></script> 784 <script src="/Files/Templates/Designs/BfaPortalen/js/tjekliste.js?v=1.9" data-cookieconsent="ignore"></script> 785 <link rel="stylesheet" href="/Files/Templates/Designs/BfaPortalen/css/checklist.css?v=1.9"> 786 <style> 787 .cards-parent li { 788 position: relative; 789 } 790 .cards-parent li .add-to-favorites { 791 position: absolute; 792 top: 0px; 793 right: 0px; 794 z-index: 2; 795 padding: 10px; 796 } 797 .star-icon.yellow { 798 fill: #f9941e; 799 } 800 .favorites-aside { 801 position: fixed; 802 top: 0px; 803 right: -350px; 804 width: fit-content; 805 background: #f9941e; 806 color: #333; 807 padding: 6px 24px; 808 z-index: 1000; 809 transition: right 0.4s cubic-bezier(.4,0,.2,1); 810 } 811 .favorites-aside a { 812 color: #333; 813 } 814 815 .favorites-aside.visible { 816 right: 0px; 817 } 818 </style> 819 </body> 820 </html> 821 @helper WriteMaterialCard(Material material, List<Category> categories, List<Type> types, List<Branch> branches, List<Emne> emner, bool hidden = false) { 822 var systemName = "Service_"; 823 var materialsPageId = 20182; 824 var materialId = material.Id; 825 var materialParagraphId = material.ParagraphId; 826 var materialTitle = material.Title; 827 var materialDescription = material.Description; 828 var materialImage = material.Image; 829 var materialCategory = (categories.Find(x => x.Id == material.Category) != null) ? categories.Find(x => x.Id == material.Category).Title : string.Empty; 830 var materialType = (types.Find(x => x.Id == material.Type) != null) ? types.Find(x => x.Id == material.Type).Title : string.Empty; 831 var showType = (types.Find(x => x.Id == material.Type) != null) ? types.Find(x => x.Id == material.Type).SynligSomLabel : false; 832 //var materialBrancher = (branches.Find(x => x.Id == brancher.Type) != null) ? types.Find(x => x.Id == material.Type).Title.ToLower() : string.Empty; 833 var materialLink = material.Link; 834 var materialLinkTarget = material.LinkTarget; 835 var materialPublished = (!string.IsNullOrEmpty(material.Published)) ? material.Published : ""; 836 var soeord = (!string.IsNullOrEmpty(material.Soeord)) ? "<span class='soeord hidden'>" + material.Soeord + "</span>" : ""; 837 var materialBrancher = ""; 838 var materialBrancheLabel = ""; 839 var materialBrancherFilter = ""; 840 if (!string.IsNullOrEmpty(material.Branches)) 841 { 842 var branchIds = material.Branches.Split(','); 843 var branchTitles = new List<string>(); 844 foreach (var branchId in branchIds) 845 { 846 var branch = branches.Find(x => x.PageId.ToString() == branchId); 847 if (branch != null) 848 { 849 branchTitles.Add(branch.Title); 850 if (materialBrancheLabel == "") 851 { 852 materialBrancheLabel = branch.Title; 853 } else 854 { 855 materialBrancheLabel = "Brancher..."; 856 } 857 } 858 } 859 materialBrancher += string.Join(", ", branchTitles); 860 materialBrancherFilter = string.Join("#", branchTitles); 861 } 862 863 var materialEmner = ""; 864 var materialEmnerLabel = ""; 865 var materialEmnerFilter = ""; 866 if (!string.IsNullOrEmpty(material.Emner)) 867 { 868 var emneIds = material.Emner.Split(','); 869 var emneTitles = new List<string>(); 870 foreach (var emneId in emneIds) 871 { 872 var emne = emner.Find(x => x.Id.ToString() == emneId); 873 if (emne != null) 874 { 875 emneTitles.Add(emne.Title); 876 if (materialEmnerLabel == "") 877 { 878 materialEmnerLabel = emne.Title; 879 } else 880 { 881 materialEmnerLabel = "Emner..."; 882 } 883 } 884 } 885 materialEmner += string.Join(", ", emneTitles); 886 materialEmnerFilter = string.Join("#", emneTitles); 887 } 888 889 if (materialImage.ToLower().Contains("barservice/") && !materialImage.ToLower().Contains("/billeder") && !materialImage.ToLower().Contains("../") && !materialImage.ToLower().Contains("download.aspx") && !string.IsNullOrEmpty(materialImage.ToString())) 890 { 891 materialImage = "/Files/Billeder/" + materialImage; 892 } 893 894 if (materialLink == null || string.IsNullOrEmpty(materialLink.ToString())) 895 { 896 materialLink = "/Default.aspx?ID=" + materialsPageId + "&itemId=" + systemName + "Materiale:" + materialId; 897 } 898 if (materialLink.ToLower().Contains("/billeder") && !materialLink.ToLower().Contains("files/") && !materialLink.ToLower().Contains("/filer") && !materialLink.ToLower().Contains("download.aspx") && !string.IsNullOrEmpty(materialLink.ToString())) 899 { 900 materialLink = "/Files" + materialLink; 901 } 902 if (materialLink.ToLower().Contains("/barservice") && !materialLink.ToLower().Contains("/billeder") && !materialLink.ToLower().Contains("/filer") && !materialLink.ToLower().Contains("download.aspx") && !string.IsNullOrEmpty(materialLink.ToString())) 903 { 904 materialLink = "/Files/Billeder" + materialLink; 905 } 906 if (materialLink.ToLower().Contains("/filer") && !materialLink.ToLower().Contains("files/") && !materialLink.ToLower().Contains("download.aspx") && !string.IsNullOrEmpty(materialLink.ToString())) 907 { 908 materialLink = "/Files" + materialLink; 909 } 910 911 if (materialLink.ToLower().Contains(".pdf") || materialLink.ToLower().Contains(".doc") || materialLink.ToLower().Contains(".docx") || materialLink.ToLower().Contains(".xls") || materialLink.ToLower().Contains(".xlsx") || materialLink.ToLower().Contains(".ppt") || materialLink.ToLower().Contains(".pptx") || materialLink.ToLower().Contains(".epub")) 912 { 913 materialLinkTarget = "_blank"; 914 } 915 916 // height of material 917 var materialClass = (materialDescription.Length > 160) ? "short" : string.Empty; 918 919 var sortDateAsc = material.SortDate; 920 int sortdate = 0; 921 int.TryParse(material.SortDate, out sortdate); 922 var sortDateDesc = (99999999 - sortdate).ToString(); 923 924 string hideString = hidden ? "display:none" : ""; 925 // alternative image 926 var materialImageAlternative = (!string.IsNullOrEmpty(materialType)) ? "/Files/Templates/Designs/bfa5-service/img/no-image-" + materialType + ".png" : "/Files/Templates/Designs/bfa5-service/img/no-image-side.png"; 927 var urlTitle = materialTitle.Replace("\"", ""); 928 <li class="li @materialClass " data-pid="@material.ParagraphItemId" data-sorttitle="@urlTitle" data-sortdateasc="@sortDateAsc" data-sortdatedesc="@sortDateDesc" data-filteremne="@materialEmner" data-filterbranche="@materialBrancher" data-sortemne="@materialEmnerLabel" data-filteremner="@materialEmnerFilter" data-filterbrancher="@materialBrancherFilter" data-nyhed="@material.Nyhed" data-sorttype="@materialCategory" style="@hideString"> 929 <article itemtype="https://schema.org/Article" itemscope=""> 930 @if (materialType == "popup") 931 { 932 <div class="materialcard @materialType @material.CssKlasse" data-url="@materialLink" data-title="@urlTitle" data-id="@materialParagraphId"> 933 <div class="image"> 934 <img src="/admin/public/getimage.aspx?Image=@materialImage&AlternativeImage=@materialImageAlternative&width=400" alt="@materialTitle" itemprop="image"> 935 </div> 936 <div class="body"> 937 <div class="subject">@materialCategory @materialPublished</div> 938 <header><h3 class="title" itemprop="headline">@materialTitle</h3></header> 939 <div class="description @materialClass" itemprop="description"> 940 @materialDescription 941 </div> 942 </div> 943 </div> 944 } 945 else 946 { 947 <a class="materialcard @material.CssKlasse" href="@materialLink" target="@materialLinkTarget" itemprop="url" data-id="@materialParagraphId" data-materialtype="@materialType"> 948 <div class="image"> 949 <img src="/admin/public/getimage.aspx?Image=@materialImage&AlternativeImage=@materialImageAlternative&width=400" alt="@materialTitle" itemprop="image"> 950 </div> 951 <div class="body"> 952 <div class="subject"> 953 <span>@materialPublished</span> 954 <span>@materialCategory</span> 955 @if (!string.IsNullOrEmpty(materialBrancher)) 956 { 957 <span title="@materialBrancher">@materialBrancheLabel</span> 958 } 959 @if (!string.IsNullOrEmpty(materialEmner)) 960 { 961 <span title="@materialEmner">@materialEmnerLabel</span> 962 } 963 @if (!string.IsNullOrEmpty(materialType) && showType) 964 { 965 <span>@materialType</span> 966 } 967 968 </div> 969 <header><h3 class="title" itemprop="headline">@materialTitle</h3></header> 970 <div class="description @materialClass" itemprop="description"> 971 @materialDescription 972 @soeord 973 </div> 974 975 </div> 976 977 978 </a> 979 } 980 </article> 981 </li> 982 983 } 984 985 @functions { 986 987 public class Branch 988 { 989 public int Id { get; set; } 990 public int PageId { get; set; } 991 992 public string Title { get; set; } 993 994 public string Description { get; set; } 995 996 public string Image { get; set; } 997 public int UndermenuPunkter1 { get; set; } 998 public int UndermenuPunkter2 { get; set; } 999 public string Farver { get; set; } 1000 public string FarverMobil { get; set; } 1001 1002 } 1003 1004 public class Farve 1005 { 1006 public int Id { get; set; } 1007 public string Title { get; set; } 1008 public string Tekstfarve { get; set; } 1009 public string Baggrundsfarve { get; set; } 1010 public string SekTekstfarve { get; set; } 1011 public string SekBaggrundsfarve { get; set; } 1012 public string MobilTekstfarve { get; set; } 1013 public string MobilBaggrundsfarve { get; set; } 1014 1015 } 1016 1017 public List<Farve> getFarver(Area area, string systemName) 1018 { 1019 var farver = new List<Farve>(); 1020 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM ItemType_Farve AS f Order By f.Id Desc"))) 1021 { 1022 while (itemReader.Read()) 1023 { 1024 var farve = new Farve 1025 { 1026 Id = int.Parse(itemReader["Id"].ToString()), 1027 Title = itemReader["Titel"].ToString(), 1028 Tekstfarve = itemReader["Tekstfarve"].ToString(), 1029 Baggrundsfarve = itemReader["Baggrundsfarve"].ToString(), 1030 SekTekstfarve = itemReader["Sekund_rTekstfarve"].ToString(), 1031 SekBaggrundsfarve = itemReader["Sekund_rBaggrundsfarve"].ToString(), 1032 MobilTekstfarve = itemReader["MobilTekstfarve"].ToString(), 1033 MobilBaggrundsfarve = itemReader["MobilBaggrundsfarve"].ToString(), 1034 1035 }; 1036 farver.Add(farve); 1037 } 1038 itemReader.Close(); 1039 itemReader.Dispose(); 1040 } 1041 return farver; 1042 } 1043 /* public List<ChildPages> getChildPages(int parentId) 1044 { 1045 var children = new List<ChildPages>(); 1046 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Page AS p INNER JOIN ItemType_" + systemName + "Branche AS b ON p.PageItemId = b.Id WHERE p.PageAreaID = {0} AND p.PageActive = {1} AND p.PageItemType = {2} Order By p.PageSort ASC", area.ID, "True", systemName + "Branche"))) 1047 { 1048 while (itemReader.Read()) 1049 { 1050 var child = new ChildPages 1051 { 1052 Id = int.Parse(itemReader["Id"].ToString()), 1053 1054 Title = itemReader["Titel"].ToString(), 1055 Image = itemReader["Billede"].ToString(), 1056 UndermenuPunkter1 = itemReader["UndermenuPunkter_1"].ToString(), 1057 UndermenuPunkter2 = itemReader["UndermenuPunkter_2"].ToString(), 1058 Farver = itemReader["Farver"].ToString(), 1059 FarverMobil = itemReader["FarverMobil"].ToString(), 1060 1061 }; 1062 children.Add(child); 1063 } 1064 itemReader.Close(); 1065 itemReader.Dispose(); 1066 } 1067 return children; 1068 }*/ 1069 public List<Branch> getBranches(Area area, string systemName) 1070 { 1071 var branches = new List<Branch>(); 1072 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Page AS p INNER JOIN ItemType_" + systemName + "Branche AS b ON p.PageItemId = b.Id WHERE p.PageAreaID = {0} AND p.PageActive = {1} AND p.PageItemType = {2} Order By p.PageSort ASC", area.ID, "True", systemName + "Branche"))) 1073 { 1074 while (itemReader.Read()) 1075 { 1076 var branch = new Branch 1077 { 1078 Id = int.Parse(itemReader["Id"].ToString()), 1079 PageId = int.Parse(itemReader["PageID"].ToString()), 1080 Title = itemReader["Titel"].ToString(), 1081 Image = itemReader["Billede"].ToString(), 1082 UndermenuPunkter1 = (!string.IsNullOrEmpty(itemReader["UndermenuPunkter_1"].ToString()) ) ? int.Parse(itemReader["UndermenuPunkter_1"].ToString()) : 0, 1083 UndermenuPunkter2 = (!string.IsNullOrEmpty(itemReader["UndermenuPunkter_2"].ToString()) ) ? int.Parse(itemReader["UndermenuPunkter_2"].ToString()) : 0, 1084 Farver = itemReader["Farver"].ToString(), 1085 FarverMobil = itemReader["FarverMobil"].ToString(), 1086 1087 }; 1088 1089 branches.Add(branch); 1090 } 1091 itemReader.Close(); 1092 itemReader.Dispose(); 1093 } 1094 return branches; 1095 } 1096 public List<Branch> getBrancheSider(Area area, string systemName) 1097 { 1098 var branches = new List<Branch>(); 1099 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Page AS p INNER JOIN ItemType_Branche_Side AS b ON p.PageItemId = b.Id WHERE p.PageAreaID = {0} AND p.PageActive = {1} AND p.PageItemType = {2} Order By p.PageSort ASC", area.ID, "True", "Branche_Side"))) 1100 { 1101 while (itemReader.Read()) 1102 { 1103 var branch = new Branch 1104 { 1105 Id = int.Parse(itemReader["Id"].ToString()), 1106 PageId = int.Parse(itemReader["PageID"].ToString()), 1107 Title = itemReader["Titel"].ToString(), 1108 Image = itemReader["Billede"].ToString(), 1109 UndermenuPunkter1 = (!string.IsNullOrEmpty(itemReader["UndermenuPunkter_1"].ToString()) ) ? int.Parse(itemReader["UndermenuPunkter_1"].ToString()) : 0, 1110 UndermenuPunkter2 = (!string.IsNullOrEmpty(itemReader["UndermenuPunkter_2"].ToString()) ) ? int.Parse(itemReader["UndermenuPunkter_2"].ToString()) : 0, 1111 Farver = itemReader["Farver"].ToString(), 1112 FarverMobil = itemReader["FarverMobil"].ToString(), 1113 1114 }; 1115 1116 branches.Add(branch); 1117 } 1118 itemReader.Close(); 1119 itemReader.Dispose(); 1120 } 1121 return branches; 1122 } 1123 /* 1124 public class Branch 1125 { 1126 public int Id { get; set; } 1127 1128 public string Title { get; set; } 1129 } 1130 public List<Branch> getBranches(Area area, string systemName) 1131 { 1132 var branches = new List<Branch>(); 1133 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Page AS p INNER JOIN ItemType_" + systemName + "Branche AS b ON p.PageItemId = b.Id WHERE p.PageAreaID = {0} AND p.PageActive = {1} AND p.PageItemType = {2} Order By b.Sort ASC", area.ID, "True", systemName + "Branche"))) 1134 { 1135 while (itemReader.Read()) 1136 { 1137 var branch = new Branch 1138 { 1139 Id = int.Parse(itemReader["Id"].ToString()), 1140 Title = itemReader["Titel"].ToString() 1141 }; 1142 branches.Add(branch); 1143 } 1144 itemReader.Close(); 1145 itemReader.Dispose(); 1146 } 1147 return branches; 1148 } 1149 */ 1150 public class Category 1151 { 1152 public int Id { get; set; } 1153 1154 public string Title { get; set; } 1155 } 1156 public List<Category> getCategories(Area area, string systemName) 1157 { 1158 var categories = new List<Category>(); 1159 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Paragraph AS pg INNER JOIN ItemType_" + systemName + "Kategori AS c ON pg.ParagraphItemId = c.Id INNER JOIN Page AS p ON pg.ParagraphPageId = p.PageId WHERE p.PageAreaID = {0} AND pg.ParagraphShowParagraph = {1} AND pg.ParagraphItemType = {2} Order By c.Titel ASC", area.ID, "True", systemName + "Kategori"))) 1160 { 1161 while (itemReader.Read()) 1162 { 1163 var category = new Category 1164 { 1165 Id = int.Parse(itemReader["Id"].ToString()), 1166 Title = itemReader["Titel"].ToString() 1167 }; 1168 categories.Add(category); 1169 } 1170 itemReader.Close(); 1171 itemReader.Dispose(); 1172 } 1173 return categories; 1174 } 1175 1176 public class Type 1177 { 1178 public int Id { get; set; } 1179 1180 public string Title { get; set; } 1181 public bool SynligSomLabel { get; set; } 1182 } 1183 public List<Type> getTypes(Area area, string systemName) 1184 { 1185 var types = new List<Type>(); 1186 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Paragraph AS pg INNER JOIN ItemType_" + systemName + "Type AS t ON pg.ParagraphItemId = t.Id INNER JOIN Page AS p ON pg.ParagraphPageId = p.PageId WHERE p.PageAreaID = {0} AND pg.ParagraphShowParagraph = {1} AND pg.ParagraphItemType = {2} Order By t.Titel ASC", area.ID, "True", systemName + "Type"))) 1187 { 1188 while (itemReader.Read()) 1189 { 1190 var type = new Type 1191 { 1192 Id = int.Parse(itemReader["Id"].ToString()), 1193 Title = itemReader["Titel"].ToString(), 1194 SynligSomLabel = (itemReader["SynligSomLabel"].ToString() == "True") ? true : false 1195 }; 1196 types.Add(type); 1197 } 1198 itemReader.Close(); 1199 itemReader.Dispose(); 1200 } 1201 return types; 1202 } 1203 public class Emne 1204 { 1205 public int Id { get; set; } 1206 1207 public string Title { get; set; } 1208 } 1209 public List<Emne> getEmner(Area area, string systemName) 1210 { 1211 var emner = new List<Emne>(); 1212 using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Page AS p INNER JOIN ItemType_" + systemName + "Emne AS b ON p.PageItemId = b.Id WHERE p.PageAreaID = {0} AND p.PageActive = {1} AND p.PageItemType = {2} Order By p.PageSort ASC", area.ID, "True", systemName + "Emne"))) 1213 //using (var itemReader = Database.CreateDataReader(CommandBuilder.Create("SELECT * FROM Paragraph AS pg INNER JOIN ItemType_" + systemName + "Emne AS t ON pg.ParagraphItemId = t.Id INNER JOIN Page AS p ON pg.ParagraphPageId = p.PageId WHERE p.PageAreaID = {0} AND pg.ParagraphShowParagraph = {1} AND pg.ParagraphItemType = {2} Order By t.Titel ASC", area.ID, "True", systemName + "Emne"))) 1214 { 1215 while (itemReader.Read()) 1216 { 1217 var emne = new Emne 1218 { 1219 Id = int.Parse(itemReader["Id"].ToString()), 1220 Title = itemReader["Titel"].ToString() 1221 }; 1222 emner.Add(emne); 1223 } 1224 itemReader.Close(); 1225 itemReader.Dispose(); 1226 } 1227 return emner; 1228 } 1229 1230 1231 1232 public class Group 1233 { 1234 public int Id { get; set; } 1235 1236 public string Title { get; set; } 1237 1238 public string Showing { get; set; } 1239 1240 public List<Material> Materials { get; set; } 1241 } 1242 1243 public class Material 1244 { 1245 public int Id { get; set; } 1246 1247 public int ParagraphId { get; set; } 1248 public int ParagraphItemId { get; set; } 1249 public string Title { get; set; } 1250 1251 public string Description { get; set; } 1252 1253 public string Content { get; set; } 1254 1255 public string Image { get; set; } 1256 1257 public string Link { get; set; } 1258 1259 public string LinkTarget { get; set; } 1260 1261 public int Category { get; set; } 1262 1263 public int Type { get; set; } 1264 1265 public string Published { get; set; } 1266 public string SortDate { get; set; } 1267 public List<Image> Images { get; set; } 1268 1269 public string Branches { get; set; } 1270 public string Emner { get; set; } 1271 public string Farver { get; set; } 1272 public string Soeord { get; set; } 1273 public string CssKlasse { get; set; } 1274 public string Nyhed { get; set; } 1275 } 1276 1277 public class Image 1278 { 1279 public int Id { get; set; } 1280 1281 public string Title { get; set; } 1282 1283 public string Path { get; set; } 1284 1285 public List<int> Branches { get; set; } 1286 } 1287 1288 1289 1290 1291 } 1292