summaryrefslogtreecommitdiff
path: root/Blog/Components/Pages
diff options
context:
space:
mode:
Diffstat (limited to 'Blog/Components/Pages')
-rw-r--r--Blog/Components/Pages/BRP.razor8
-rw-r--r--Blog/Components/Pages/BRP.razor.cs37
-rw-r--r--Blog/Components/Pages/BrpTestData.razor12
-rw-r--r--Blog/Components/Pages/BrpTestData.razor.cs31
4 files changed, 88 insertions, 0 deletions
diff --git a/Blog/Components/Pages/BRP.razor b/Blog/Components/Pages/BRP.razor
new file mode 100644
index 0000000..6595d3a
--- /dev/null
+++ b/Blog/Components/Pages/BRP.razor
@@ -0,0 +1,8 @@
1@page "/BRP/{BSN}"
2@using System.Text.Json
3<PageTitle>BRP</PageTitle>
4
5<main>
6 <JsonRender Element="Entry?.RootElement"></JsonRender>
7</main>
8
diff --git a/Blog/Components/Pages/BRP.razor.cs b/Blog/Components/Pages/BRP.razor.cs
new file mode 100644
index 0000000..e7298a9
--- /dev/null
+++ b/Blog/Components/Pages/BRP.razor.cs
@@ -0,0 +1,37 @@
1using System.Text.Json;
2using System.Text.RegularExpressions;
3using Blog.Services;
4using Microsoft.AspNetCore.Components;
5using Microsoft.AspNetCore.Mvc;
6
7namespace Blog.Components.Pages;
8
9public partial class BRP : ComponentBase
10{
11 [Parameter]
12 public required string BSN { get; set; }
13
14 [Inject]
15 public required BrpService Service { get; set; }
16
17 private JsonDocument Entry { get; set; }
18
19 protected override async Task OnInitializedAsync()
20 {
21 Entry = await Service.GetBrpEntryAsync(BSN).ConfigureAwait(true);
22 await base.OnInitializedAsync();
23 }
24
25 internal static string Url(string bsn)
26 {
27 return $"/BRP/{bsn}";
28 }
29
30 internal static bool LooksLikeBSN(string value)
31 {
32 return BsnRegex().IsMatch(value);
33 }
34
35 [GeneratedRegex(@"^\d{8,9}$", RegexOptions.NonBacktracking)]
36 private static partial Regex BsnRegex();
37} \ No newline at end of file
diff --git a/Blog/Components/Pages/BrpTestData.razor b/Blog/Components/Pages/BrpTestData.razor
new file mode 100644
index 0000000..1b6240e
--- /dev/null
+++ b/Blog/Components/Pages/BrpTestData.razor
@@ -0,0 +1,12 @@
1@page "/BRPTestData"
2<PageTitle>BRP Test Data</PageTitle>
3
4<main>
5 @foreach (var entry in Entries)
6 {
7 <div>
8 <NavLink href=@($"/BRP/{@entry.bsn}")>@entry.bsn</NavLink>
9 @entry.naam
10 </div>
11 }
12</main> \ No newline at end of file
diff --git a/Blog/Components/Pages/BrpTestData.razor.cs b/Blog/Components/Pages/BrpTestData.razor.cs
new file mode 100644
index 0000000..9d0fb35
--- /dev/null
+++ b/Blog/Components/Pages/BrpTestData.razor.cs
@@ -0,0 +1,31 @@
1using Blog.Models;
2using Blog.Services;
3using System.Linq;
4using Microsoft.AspNetCore.Components;
5
6namespace Blog.Components.Pages;
7
8public partial class BrpTestData : ComponentBase, IDisposable
9{
10 public void Dispose()
11 {
12 CancellationTokenSource.Cancel();
13 CancellationTokenSource.Dispose();
14 }
15
16 [Inject]
17 public BrpService Service { get; set; }
18
19 private CancellationTokenSource CancellationTokenSource { get; set; } = new CancellationTokenSource();
20
21 protected override async Task OnInitializedAsync()
22 {
23 this.Entries = (await Service.GetBrpEntriesAsync(CancellationTokenSource.Token)
24 .ConfigureAwait(true))
25 .Where(entry => entry.bsn[0] != '1')
26 .ToArray();
27 await base.OnInitializedAsync();
28 }
29
30 private BRPEntry[] Entries { get; set; } = [];
31} \ No newline at end of file