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