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