public async Task <AuthorizedUserDto> LocalLogin(AuthorizedUserDto user, LoginTokenDto loginToken)
        {
            User       = user;
            LoginToken = loginToken;

            // Remove all current credentials - this fixes problem when the credentials in the local storage are broken
            await _localStorageManagerService.RemoveLoginToken();

            await _localStorageManagerService.RemoveLoginProfile();

            // Save credentials to local storage
            await _localStorageManagerService.SetLoginProfile(user);

            await _localStorageManagerService.SetLoginToken(loginToken);

            // Set static state
            if (user.HasHomeStudyGroup)
            {
                _staticStateService.SetSelectedStudyGroup(
                    new StudyGroupToSelectDto(
                        user.HomeStudyGroup !.LongName,
                        user.HomeStudyGroup.ShortName,
                        user.HomeStudyGroup.StudyGroupId,
                        user.HomeStudyGroup.UniversityShortName,
                        user.HomeStudyGroup.UniversityId));
            }

            // Notify the rest of the app about authentication
            _localAuthenticationStateProvider.SetAsLoggedIn(loginToken.PrimaryTokenId);

            return(User);
        }
        public Task UpdateUser(AuthorizedUserDto user)
        {
            // Dont do anything if the user is not authenticated
            if (!IsAuthenticated)
            {
                return(Task.CompletedTask);
            }

            User = user;

            return(_localStorageManagerService.SetLoginProfile(user));
        }
 public Task SetLoginProfile(AuthorizedUserDto loginProfile) => _localStorageService.SetItemAsync(_loginProfileKey, loginProfile);