public void Login(LoginPlatform platform) { this.IsLoading = true; App.Logout(); #if MONOANDROID var activity = this.GetService<Cirrious.MvvmCross.Droid.Interfaces.IMvxAndroidCurrentTopActivity>().Activity; App.Azure.LoginAsync(activity, platform.Provider).ContinueWith((t) => #elif MONOTOUCH App.Azure.LoginAsync(ViewController, platform.Provider).ContinueWith((t) => #else App.Azure.LoginAsync(platform.Provider).ContinueWith((t) => #endif { this.IsLoading = false; if (t.Status == System.Threading.Tasks.TaskStatus.RanToCompletion && t.Result != null && !string.IsNullOrEmpty(t.Result.UserId)) { //Save our app settings for next launch var settings = this.GetService<Interfaces.ISettingsProvider>(); settings.UserId = t.Result.UserId; settings.AuthenticationProvider = (int)platform.Provider; settings.Save(); //Navigate to the Lists view RequestNavigate<WishListsViewModel>(); } else { //Show Error this.ReportError("Login Failed!"); } }); }
public void Login(LoginPlatform platform) { IsLoading = true; App.Logout(); #if MONOANDROID var activity = this.GetService<Cirrious.MvvmCross.Droid.Interfaces.IMvxAndroidCurrentTopActivity>().Activity; App.Azure.LoginAsync(activity, platform.Provider).ContinueWith((t) => HandleLoginResult(t, platform)); #elif MONOTOUCH App.Azure.LoginAsync(ViewController, platform.Provider).ContinueWith((t) => HandleLoginResult(t, platform)); #else App.Azure.LoginAsync(platform.Provider).ContinueWith((t) => HandleLoginResult(t, platform)); #endif }
void HandleLoginResult(Task<MobileServiceUser> t, LoginPlatform platform = null) { IsLoading = false; if (t.Status == TaskStatus.RanToCompletion && t.Result != null && !string.IsNullOrEmpty(t.Result.UserId)) { //Save our app settings for next launch var settings = this.GetService<ISettingsProvider>(); settings.UserId = t.Result.UserId; if (platform != null) settings.AuthenticationProvider = (int)platform.Provider; settings.Save(); //Navigate to the Lists view RequestNavigate<WishListsViewModel>(); } else { //Show Error ReportError("Login Failed!"); } }