protected async Task Startup() { var accounts = (await _accountsService.GetAccounts()).ToList(); if (!accounts.Any()) { GoToLoginCommand.ExecuteNow(); return; } var account = await _applicationService.GetDefaultAccount(); if (account == null) { GoToAccountsCommand.ExecuteNow(); return; } if (string.IsNullOrEmpty(account.Token) || string.IsNullOrEmpty(account.RefreshToken)) { GoToLoginCommand.ExecuteNow(); return; } try { IsLoggingIn = true; Status = "Logging in as " + account.Username; var ret = await BitbucketClient.GetRefreshToken( Secrets.ClientId, Secrets.ClientSecret, account.RefreshToken); if (ret == null) { await _alertDialogService.Alert("Error!", "Unable to refresh OAuth token. Please login again."); GoToLoginCommand.ExecuteNow(); return; } account.RefreshToken = ret.RefreshToken; account.Token = ret.AccessToken; await _accountsService.Save(account); await AttemptLogin(account); GoToMenuCommand.ExecuteNow(); } catch (Exception e) { _alertDialogService .Alert("Error!", "Unable to login successfully: " + e.Message) .ToObservable() .BindCommand(GoToAccountsCommand); } finally { IsLoggingIn = false; } }
protected async Task Startup() { if (!_applicationService.Accounts.Any()) { GoToLoginCommand.Execute(null); return; } var account = GetDefaultAccount(); if (account == null) { GoToAccountsCommand.Execute(null); return; } if (string.IsNullOrEmpty(account.Token) || string.IsNullOrEmpty(account.RefreshToken)) { await AlertService.Alert("Welcome!", "CodeBucket is now OAuth compliant!\n\nFor your security, " + "you will now be prompted to login to Bitbucket via their OAuth portal. This will swap out your credentials" + " for an OAuth token you may revoke at any time!"); GoToLoginCommand.Execute(null); return; } try { IsLoggingIn = true; Status = "Logging in as " + account.Username; var ret = await Task.Run(() => Client.RefreshToken(LoginViewModel.ClientId, LoginViewModel.ClientSecret, account.RefreshToken)); if (ret == null) { await DisplayAlert("Unable to refresh OAuth token. Please login again."); GoToLoginCommand.Execute(null); return; } account.RefreshToken = ret.RefreshToken; account.Token = ret.AccessToken; _accountsService.Update(account); await AttemptLogin(account); GoToMenuCommand.Execute(null); } catch (Exception e) { DisplayAlert("Unable to login successfully: " + e.Message).FireAndForget(); GoToAccountsCommand.Execute(null); } finally { IsLoggingIn = false; } }
public virtual void GoToMenuHandler(GoToMenuCommand command) { this.GoToMenu(command.Sender as MainGameRootViewModel); }
public virtual void ExecuteGoToMenu(GoToMenuCommand command) { command.Sender = MainGameRoot; MainGameRoot.GoToMenu.OnNext(command); }