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