private async Task WebNavigatingAsync(string url) { var unescapedUrl = System.Net.WebUtility.UrlDecode(url); if (unescapedUrl.Equals(GlobalSettings.Instance.RegisterCallback)) { LoginUrl = _identityService.CreateAuthorizationRequestUri(); IsLogin = true; IsBusy = true; } else if (unescapedUrl.Equals(GlobalSettings.Instance.LogoutCallback)) { _settingsService.AuthAccessToken = string.Empty; _settingsService.AuthIdToken = string.Empty; _settingsService.UserName = string.Empty; _settingsService.UserId = string.Empty; IsLogin = false; LoginUrl = _identityService.CreateAuthorizationRequestUri(); } else if (unescapedUrl.Contains(GlobalSettings.Instance.Callback)) { var authResponse = new AuthorizeResponse(url); if (!string.IsNullOrWhiteSpace(authResponse.Code)) { var userToken = await _identityService.GetTokenAsync(authResponse.Code); string accessToken = userToken.AccessToken; if (!string.IsNullOrWhiteSpace(accessToken)) { _settingsService.AuthAccessToken = accessToken; _settingsService.AuthIdToken = authResponse.IdentityToken; IsBusy = true; var userInfo = await _userService.GetUserInfoAsync(); _settingsService.UserName = userInfo.PreferredUserName; _settingsService.UserId = userInfo.UserId; _menuService.RemovePageFromMenu <LoginPageModel>(); _menuService.AddPageInMenu <UserPageModel>("Пользователь", "Главное меню", '\uf007'.ToString(), Color.Red); await CoreMethods.PushPageModel <MainPageModel>(); CoreMethods.RemoveFromNavigation(); IsBusy = false; } } } }
private async Task LogoutAsync() { //_userDialogs.ShowLoading("Загрузка"); IsBusy = true; // Logout _menuService.RemovePageFromMenu <UserPageModel>(); _menuService.AddPageInMenu <LoginPageModel>("Вход", "Главное меню", '\uf090'.ToString()); await CoreMethods.PushPageModel <LoginPageModel>(new LogoutParameter { Logout = true }); CoreMethods.RemoveFromNavigation(); //_userDialogs.HideLoading(); IsBusy = false; }