private async void NavegarParaMenuPage(object sender, EventArgs e) { var loginRequest = new LoginGet(); loginRequest.Email = entry_email.Text; loginRequest.Senha = entry_senha.Text; var result = await service.Logar(loginRequest); if (result != null) { var pessoa = result.pessoa; Security.Security.TokenValue = result.token.Value; var pagina = new View.Menu(result.pessoa, result.token) { BindingContext = result.pessoa }; await Navigation.PushAsync(pagina); await DisplayAlert("Olá", "Seja Bem-Vindo ao FaceIT", "Ok"); } else { await DisplayAlert("Erro", "E-mail ou Senha Inexistente/Incorreto", "Ok"); } }
async void OnAuthCompleted(object sender, AuthenticatorCompletedEventArgs e) { var authenticator = sender as OAuth2Authenticator; if (authenticator != null) { authenticator.Completed -= OnAuthCompleted; authenticator.Error -= OnAuthError; } if (e.IsAuthenticated) { User user = null; var request = new OAuth2Request("GET", new Uri(Constants.GoogleUserInfoUrl), null, e.Account); var response = await request.GetResponseAsync(); if (response != null) { string userJson = await response.GetResponseTextAsync(); user = JsonConvert.DeserializeObject <User>(userJson); } if (account != null) { store.Delete(account, Constants.AppName); } user.Id = user.Id.Substring(0, 10); var loginRequest = new LoginGet(); loginRequest.Email = user.Email.ToString(); loginRequest.GoogleId = Convert.ToInt32(user.Id); var result = await service.Logar(loginRequest); if (result != null) { var pessoa = result.pessoa; Security.Security.TokenValue = result.token.Value; var pagina = new View.Menu(result.pessoa, result.token) { BindingContext = result.pessoa }; await Navigation.PushAsync(pagina); await DisplayAlert("Olá", "Seja Bem-Vindo ao FaceIT", "Ok"); } else { var cadastro = new View.PessoaFisicaCadastroGoogle(user); await Navigation.PushAsync(cadastro); await DisplayAlert("Aviso", "Antes de acessar, você precisa preencher alguns dados.", "Ok"); } } }
public async Task <LoginRetun> Logar(LoginGet login) { try { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("https://faceitapi.azurewebsites.net/api"); var json = JsonConvert.SerializeObject(login); var data = new StringContent(json, Encoding.UTF8, "application/json"); var httpresponse = await client.PostAsync(client.BaseAddress + "/Login", data); if (httpresponse.IsSuccessStatusCode) { var result = JsonConvert.DeserializeObject <LoginRetun>(await httpresponse.Content.ReadAsStringAsync()); return(result); } return(null); } catch (Exception) { throw; } }