Blog/Components/Pages/BRP.razor.cs 898 B · 37 lines · raw · history

1 using System.Text.Json;
2 using System.Text.RegularExpressions;
3 using Blog.Services;
4 using Microsoft.AspNetCore.Components;
5 using Microsoft.AspNetCore.Mvc;
6
7 namespace Blog.Components.Pages;
8
9 public 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 }