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>×</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>×</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">×</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