summary refs log tree commit diff
path: root/testFrontend/SafeNSound.Demo/App.razor
diff options
context:
space:
mode:
Diffstat (limited to 'testFrontend/SafeNSound.Demo/App.razor')
-rw-r--r--testFrontend/SafeNSound.Demo/App.razor107
1 files changed, 107 insertions, 0 deletions
diff --git a/testFrontend/SafeNSound.Demo/App.razor b/testFrontend/SafeNSound.Demo/App.razor
new file mode 100644

index 0000000..551a833 --- /dev/null +++ b/testFrontend/SafeNSound.Demo/App.razor
@@ -0,0 +1,107 @@ +@inject SafeNSoundConfiguration Config +@if (_isInitialized) { + <Router AppAssembly="@typeof(App).Assembly"> + <Found Context="routeData"> + <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)"/> + <FocusOnNavigate RouteData="@routeData" Selector="h1"/> + </Found> + <NotFound> + <PageTitle>Not found</PageTitle> + <LayoutView Layout="@typeof(MainLayout)"> + <p role="alert">Sorry, there's nothing at this address.</p> + </LayoutView> + </NotFound> + </Router> +} +else { + <h1>Registering new accounts, please wait...</h1> + <div class="alert alert-info"> + <strong>Log:</strong> + <ul> + @foreach (var log in Enumerable.Reverse(Log)) { + <li>@log</li> + } + </ul> + </div> +} + +@code { + + private bool _isInitialized = false; + private List<string> Log { get; set; } = []; + + public static SafeNSoundClient UserClient { get; set; } = null!; + public static SafeNSoundClient MonitorClient { get; set; } = null!; + public static SafeNSoundClient AdminClient { get; set; } = null!; + + public static RegisterDto UserAuth { get; set; } = null!; + public static RegisterDto MonitorAuth { get; set; } = null!; + public static RegisterDto AdminAuth { get; set; } = null!; + + private void DoLog(string text) { + Log.Add(text); + StateHasChanged(); + } + + protected override async Task OnInitializedAsync() { + await RegisterUser(); + await RegisterMonitor(); + await RegisterAdmin(); + + DoLog("Done!"); + await Task.Delay(500); + _isInitialized = true; + } + + private async Task RegisterUser() { + RegisterDto auth = UserAuth = new() { + Username = Guid.NewGuid().ToString(), + Password = Guid.NewGuid().ToString(), + Email = Guid.NewGuid() + "@example.com", + UserType = "user" + }; + await Authentication.Register(auth); + DoLog("Registered user: " + auth.Username); + var result = await Authentication.Login(auth); + DoLog("Logged in user: " + auth.Username); + UserClient = new SafeNSoundClient(Config, result.AccessToken); + DoLog("Created SafeNSoundClient for user: " + auth.Username); + } + + private async Task RegisterMonitor() { + RegisterDto auth = MonitorAuth = new() { + Username = Guid.NewGuid().ToString(), + Password = Guid.NewGuid().ToString(), + Email = Guid.NewGuid() + "@example.com", + UserType = "monitor" + }; + await Authentication.Register(auth); + DoLog("Registered monitor: " + auth.Username); + var result = await Authentication.Login(auth); + DoLog("Logged in monitor: " + auth.Username); + MonitorClient = new SafeNSoundClient(Config, result.AccessToken); + DoLog("Created SafeNSoundClient for monitor: " + auth.Username); + await MonitorClient.AddAssignedUser((await UserClient.WhoAmI()).UserId); + DoLog("Monitor now assigned to user"); + } + + private async Task RegisterAdmin() { + RegisterDto auth = AdminAuth = new() { + Username = Guid.NewGuid().ToString(), + Password = Guid.NewGuid().ToString(), + Email = Guid.NewGuid() + "@example.com", + UserType = "admin" + }; + await Authentication.Register(auth); + DoLog("Registered admin: " + auth.Username); + var result = await Authentication.Login(auth); + DoLog("Logged in admin: " + auth.Username); + AdminClient = new SafeNSoundClient(Config, result.AccessToken); + DoLog("Created SafeNSoundClient for admin: " + auth.Username); + await AdminClient.AddAssignedUser((await MonitorClient.WhoAmI()).UserId); + DoLog("Admin now assigned to user"); + await AdminClient.AddAssignedUser((await UserClient.WhoAmI()).UserId); + DoLog("Admin now assigned to monitor"); + } + +} \ No newline at end of file