async void OnSignInSignOut(object sender, EventArgs e) { if (CheckInternetConnection()) { SignInSignOutBtn.IsVisible = false; Loading.IsVisible = true; try { Microsoft.Graph.User currentUserObject; graphClient = GetAuthenticatedClient(); currentUserObject = await graphClient.Me.Request().GetAsync(); if (currentUserObject.UserPrincipalName.ToLower().Contains("@unitec.edu")) { App.Username = currentUserObject.DisplayName; App.UserEmail = currentUserObject.UserPrincipalName; username = App.Username; email = App.UserEmail; Debug.WriteLine(App.Username); Debug.WriteLine(App.UserEmail); // AQUI LOGIN var userSettings = new UserSettingsPage() { BindingContext = new User() { Name = username, Email = email } }; var user = App.Database.GetUserAsync(email); if (user == null) { await Navigation.PushAsync(userSettings); } else { user.PrintData(); Debug.WriteLine("Before createNewCurrentUser"); await App.Database.CreateNewCurrentUser(user); Debug.WriteLine("After createNewCurrentUser"); //HomeScreen home = new HomeScreen(); //App.Current.MainPage = new NavigationPage(home); switch (Xamarin.Forms.Device.RuntimePlatform) { case Xamarin.Forms.Device.iOS: Debug.WriteLine("Device is IOS"); var newHome = new HomeScreen(); await Navigation.PushAsync(newHome); App.Current.MainPage = new NavigationPage(newHome); break; case Xamarin.Forms.Device.Android: Debug.WriteLine("Device is ANDROID"); var newHome2 = new MyTickets(); await Navigation.PushAsync(newHome2); App.Current.MainPage = new NavigationPage(newHome2); break; case Xamarin.Forms.Device.UWP: Debug.WriteLine("Device is UWP"); var newHome3 = new HomeScreen(); await Navigation.PushAsync(newHome3); App.Current.MainPage = new NavigationPage(newHome3); break; } } userSettings.Disappearing += async(sender2, e2) => { HomeScreen home = new HomeScreen(); App.Current.MainPage = new NavigationPage(home); switch (Xamarin.Forms.Device.RuntimePlatform) { case Xamarin.Forms.Device.iOS: App.Current.MainPage = new NavigationPage(new HomeScreen()); break; case Xamarin.Forms.Device.Android: App.Current.MainPage = new NavigationPage(new MyTickets()); break; } //Navigation.RemovePage(page); }; } else { Debug.WriteLine("Llegue aca!"); await DisplayAlert("Error", "El correo utilizado no es valido. Por favor, utilice el correo de la Universidad", "Ok"); username = null; email = null; TokenForUser = null; graphClient = null; SignInSignOutBtn.IsVisible = true; Loading.IsVisible = false; } } catch (Exception ex) { Console.WriteLine(ex); //await DisplayAlert("Cancelled", "User cancelled authentication", "Ok"); SignInSignOutBtn.IsVisible = true; Loading.IsVisible = false; } } else { await DisplayAlert("No hay conexión", "No se detecto una conexión a Internet. Por favor vuelta a intentarlo", "Ok"); SignInSignOutBtn.IsVisible = true; Loading.IsVisible = false; } }