protected async Task Startup() { var accounts = (await _accountsService.GetAccounts()).ToList(); if (!accounts.Any()) { GoToNewAccount.Execute(null); return; } var account = await _accountsService.GetActiveAccount(); if (account == null) { GoToAccounts.Execute(null); return; } var isEnterprise = account.IsEnterprise || !string.IsNullOrEmpty(account.Password); //Lets login! try { ImageUrl = null; Status = null; IsLoggingIn = true; Uri accountAvatarUri = null; Uri.TryCreate(account.AvatarUrl, UriKind.Absolute, out accountAvatarUri); ImageUrl = accountAvatarUri; Status = "Logging in as " + account.Username; var client = await _loginFactory.LoginAccount(account); _applicationService.ActivateUser(account, client); if (!isEnterprise) { StarOrWatch(); } GoToMenu.Execute(typeof(MenuViewModel)); } catch (GitHubSharp.UnauthorizedException e) { DisplayAlertAsync("The credentials for the selected account are incorrect. " + e.Message) .ToObservable() .BindCommand(GoToAccounts); } catch (Exception e) { DisplayAlert(e.Message); GoToAccounts.Execute(null); } finally { IsLoggingIn = false; } }
protected async Task Startup() { if (!_applicationService.Accounts.Any()) { GoToNewAccount.Execute(null); return; } var accounts = GetService <IAccountsService>(); var account = accounts.GetDefault(); if (account == null) { GoToAccounts.Execute(null); return; } var isEnterprise = account.IsEnterprise || !string.IsNullOrEmpty(account.Password); if (account.DontRemember) { GoToAccounts.Execute(null); return; } //Lets login! try { ImageUrl = null; Status = null; IsLoggingIn = true; Uri accountAvatarUri = null; Uri.TryCreate(account.AvatarUrl, UriKind.Absolute, out accountAvatarUri); ImageUrl = accountAvatarUri; Status = "Logging in as " + account.Username; var client = await _loginFactory.LoginAccount(account); _applicationService.ActivateUser(account, client); if (!isEnterprise) { StarOrWatch(); } GoToMenu.Execute(typeof(MenuViewModel)); } catch (GitHubSharp.UnauthorizedException e) { DisplayAlert("The credentials for the selected account are incorrect. " + e.Message); if (isEnterprise) { GoToUrlCommand.Execute(new AddAccountViewModel.NavObject { AttemptedAccountId = account.Id }); } else { GoToUrlCommand.Execute(LoginViewModel.NavObject.CreateDontRemember(account)); } StarOrWatch(); } catch (Exception e) { DisplayAlert(e.Message); GoToAccounts.Execute(null); } finally { IsLoggingIn = false; } }