@inject SafeNSoundConfiguration Config
@if (_isInitialized) {
Not found
Sorry, there's nothing at this address.
}
else {
Registering new accounts, please wait...
Log:
@foreach (var log in Enumerable.Reverse(Log)) {
- @log
}
}
@code {
private bool _isInitialized = false;
private List 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");
}
}