@implements IDisposable @inject NavigationManager NavigationManager @inject IAuthService AuthService @inject IDataService DataService @inject IDataService DataService
@code { private bool collapseNavMenu = true; private bool _isRegistrationEnabled; private RemotelyUser? _user; private Organization? _organization; private string? _currentUrl; public void Dispose() { NavigationManager.LocationChanged -= OnLocationChanged; } protected override async Task OnInitializedAsync() { var settings = await DataService.GetSettings(); _isRegistrationEnabled = settings.MaxOrganizationCount < 0 || DataService.GetOrganizationCount() < settings.MaxOrganizationCount; await base.OnInitializedAsync(); _currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri); NavigationManager.LocationChanged += OnLocationChanged; var userResult = await AuthService.GetUser(); if (!userResult.IsSuccess) { return; } _user = userResult.Value; if (!string.IsNullOrWhiteSpace(_user?.OrganizationID)) { var orgResult = await DataService.GetOrganizationById(_user.OrganizationID); if (orgResult.IsSuccess) { _organization = orgResult.Value; } } else { var orgResult = await DataService.GetDefaultOrganization(); if (orgResult.IsSuccess) { _organization = orgResult.Value; } } } private string NavMenuCssClass => collapseNavMenu ? "collapse" : ""; private void ToggleNavMenu() { collapseNavMenu = !collapseNavMenu; } private void OnLocationChanged(object? sender, LocationChangedEventArgs e) { _currentUrl = NavigationManager.ToBaseRelativePath(e.Location); InvokeAsync(StateHasChanged); } }