async Task <bool> LoginAsync(MobileServiceAuthenticationProvider provider) { if (!Plugin.Connectivity.CrossConnectivity.Current.IsConnected) { Acr.UserDialogs.UserDialogs.Instance.Alert("Ensure you have internet connection to login.", "No Connection", "OK"); return(false); } MobileServiceUser user = null; try { authentication.ClearCookies(); user = await authentication.LoginAsync(client, provider); if (user != null) { IsBusy = true; UserProfile = await UserProfileHelper.GetUserProfileAsync(client); } } catch (Exception ex) { Logger.Instance.Report(ex); } finally { IsBusy = false; } if (user == null || UserProfile == null) { Settings.LoginAccount = LoginAccount.None; Settings.UserFirstName = string.Empty; Settings.AuthToken = string.Empty; Settings.UserLastName = string.Empty; Logger.Instance.Track("LoginError"); Acr.UserDialogs.UserDialogs.Instance.Alert("Unable to login or create account.", "Login error", "OK"); return(false); } else { Init(); Logger.Instance.Track("LoginSuccess"); } return(true); }
public void LogOut(bool clearCookies) { // Utility.SetSecured("AuthToken", string.Empty, "xamarin.sport", "authentication"); AzureService.Instance.Client.Logout(); RoomieApp.AuthToken = null; AuthUserProfile = null; Settings.Instance.RoomieID = null; Settings.Instance.AuthUserID = null; if (clearCookies) { Settings.Instance.RegistrationComplete = false; _authenticator.ClearCookies(); } Settings.Instance.Save(); }