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