From 93f038ffa95f1c2f4780c684a1b780666b086882 Mon Sep 17 00:00:00 2001 From: Marijn Besseling Date: Sun, 21 Sep 2025 17:47:15 +0200 Subject: Add BRP Test data --- Blog/Components/Pages/BRP.razor | 8 +++++++ Blog/Components/Pages/BRP.razor.cs | 37 ++++++++++++++++++++++++++++++ Blog/Components/Pages/BrpTestData.razor | 12 ++++++++++ Blog/Components/Pages/BrpTestData.razor.cs | 31 +++++++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 Blog/Components/Pages/BRP.razor create mode 100644 Blog/Components/Pages/BRP.razor.cs create mode 100644 Blog/Components/Pages/BrpTestData.razor create mode 100644 Blog/Components/Pages/BrpTestData.razor.cs (limited to 'Blog/Components/Pages') 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 @@ +@page "/BRP/{BSN}" +@using System.Text.Json +BRP + +
+ +
+ 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 @@ +using System.Text.Json; +using System.Text.RegularExpressions; +using Blog.Services; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Mvc; + +namespace Blog.Components.Pages; + +public partial class BRP : ComponentBase +{ + [Parameter] + public required string BSN { get; set; } + + [Inject] + public required BrpService Service { get; set; } + + private JsonDocument Entry { get; set; } + + protected override async Task OnInitializedAsync() + { + Entry = await Service.GetBrpEntryAsync(BSN).ConfigureAwait(true); + await base.OnInitializedAsync(); + } + + internal static string Url(string bsn) + { + return $"/BRP/{bsn}"; + } + + internal static bool LooksLikeBSN(string value) + { + return BsnRegex().IsMatch(value); + } + + [GeneratedRegex(@"^\d{8,9}$", RegexOptions.NonBacktracking)] + private static partial Regex BsnRegex(); +} \ 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 @@ +@page "/BRPTestData" +BRP Test Data + +
+ @foreach (var entry in Entries) + { +
+ @entry.bsn + @entry.naam +
+ } +
\ 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 @@ +using Blog.Models; +using Blog.Services; +using System.Linq; +using Microsoft.AspNetCore.Components; + +namespace Blog.Components.Pages; + +public partial class BrpTestData : ComponentBase, IDisposable +{ + public void Dispose() + { + CancellationTokenSource.Cancel(); + CancellationTokenSource.Dispose(); + } + + [Inject] + public BrpService Service { get; set; } + + private CancellationTokenSource CancellationTokenSource { get; set; } = new CancellationTokenSource(); + + protected override async Task OnInitializedAsync() + { + this.Entries = (await Service.GetBrpEntriesAsync(CancellationTokenSource.Token) + .ConfigureAwait(true)) + .Where(entry => entry.bsn[0] != '1') + .ToArray(); + await base.OnInitializedAsync(); + } + + private BRPEntry[] Entries { get; set; } = []; +} \ No newline at end of file -- cgit v1.2.3