private async Task LogIn() { if (string.IsNullOrWhiteSpace(CodeCell.Entry.Text)) { await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.VerificationCode), AppResources.Ok); return; } var request = new TokenTwoFactorRequest { Code = CodeCell.Entry.Text.Replace(" ", ""), Provider = "Authenticator", Device = new DeviceRequest(_appIdService, _deviceInfoService) }; _userDialogs.ShowLoading(AppResources.ValidatingCode, MaskType.Black); var response = await _authService.TokenTwoFactorPostAsync(request); _userDialogs.HideLoading(); if (!response.Succeeded) { await DisplayAlert(AppResources.AnErrorHasOccurred, response.Errors.FirstOrDefault()?.Message, AppResources.Ok); return; } _authService.Token = response.Result.Token; _authService.UserId = response.Result.Profile.Id; _authService.Email = response.Result.Profile.Email; var task = Task.Run(async() => await _syncService.FullSyncAsync()); Application.Current.MainPage = new MainPage(); }
public virtual async Task <ApiResult <TokenResponse> > PostTokenTwoFactorAsync(TokenTwoFactorRequest requestObj) { if (!Connectivity.IsConnected) { return(HandledNotConnected <TokenResponse>()); } using (var client = HttpService.Client) { var requestMessage = new TokenHttpRequestMessage(requestObj) { Method = HttpMethod.Post, RequestUri = new Uri(client.BaseAddress, string.Concat(ApiRoute, "/token/two-factor")), }; try { var response = await client.SendAsync(requestMessage).ConfigureAwait(false); if (!response.IsSuccessStatusCode) { return(await HandleErrorAsync <TokenResponse>(response).ConfigureAwait(false)); } var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var responseObj = JsonConvert.DeserializeObject <TokenResponse>(responseContent); return(ApiResult <TokenResponse> .Success(responseObj, response.StatusCode)); } catch (WebException) { return(HandledWebException <TokenResponse>()); } } }
public async Task <ApiResult <TokenResponse> > TokenTwoFactorPostAsync(TokenTwoFactorRequest request) { // TODO: move more logic in here return(await _authApiRepository.PostTokenTwoFactorAsync(request)); }