Code
·
90 lines
·
2197 bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using Microsoft.AspNetCore.Mvc;
using nl.tweedekamer.opendata.DataModel;
using MongoDB.Driver;
using MongoDB.MvcCore;
namespace OpenKamer.LogicControllers.Web;
public partial class WebController : ControllerBase
{
[HttpPost]
[Route("~/api/ShowCollections")]
public async Task<IActionResult> ShowCollections()
{
var List = await db.ListCollectionNames().ToListAsync();
return Ok(new
{
List
});
}
[HttpPost]
[Route("~/api/ShowCollection")]
public async Task<IActionResult> ShowCollection(string ColName)
{
object? List = null;
switch (ColName)
{
default:
List = await db.GetCollection(ColName).Find("{}").ToListAsync();
break;
case "commissieType":
var commissies = await db.GetCollection<commissieType>(ColName).Find("{}").ToListAsync();
List = commissies.Select(x => new
{
naam = x.naamNl,
x.nummer,
x.afkorting,
x.soort
}).ToList();
break;
case "zaalType":
var list = await db.GetCollection<zaalType>(ColName).Find("{}").ToListAsync();
List = list.Select(x => new { x.id, x.naam, x.sysCode, x.bijgewerkt, x.verwijderd }).ToList();
break;
case "persoonType":
var personen = await db.GetCollection<persoonType>(ColName).Find("{ functie: 'Tweede Kamerlid' }").ToListAsync();
List = personen.Select(x => new
{
//x.id,
x.titels,
x.initialen,
fullnaam = $"{x.roepnaam} {x.tussenvoegsel} {x.achternaam}",
x.voornamen,
geboortedatum = x.geboortedatum != null ? x.geboortedatum.Value.ToString("yyyy-MM-dd") : string.Empty,
x.geboorteplaats,
x.geboorteland,
//x.overlijdensdatum,
//x.overlijdensplaats,
//x.functie,
x.nummer,
//x.geslacht,
x.bijgewerkt,
x.achternaam,
//x.verwijderd
}).OrderBy(x => x.achternaam).ToList();
break;
case "fractieType":
var fracties = await db.GetCollection<fractieType>(ColName).Find("{ 'aantalZetels' : { $gt : 0 } }").ToListAsync();
List = fracties.Select(x => new
{
x.nummer,
x.aantalZetels,
x.afkorting,
x.naamNl
}).OrderByDescending(x => x.aantalZetels).ToList();
break;
}
return Ok(new
{
List
});
}
}