public LoginControlViewModel( IRepositoryHosts hosts, ILoginToGitHubViewModel loginToGitHubViewModel, ILoginToGitHubForEnterpriseViewModel loginToGitHubEnterpriseViewModel) { Title = Resources.LoginTitle; RepositoryHosts = hosts; GitHubLogin = loginToGitHubViewModel; EnterpriseLogin = loginToGitHubEnterpriseViewModel; isLoginInProgress = this.WhenAny( x => x.GitHubLogin.IsLoggingIn, x => x.EnterpriseLogin.IsLoggingIn, (x, y) => x.Value || y.Value ).ToProperty(this, vm => vm.IsLoginInProgress); loginMode = this.WhenAny( x => x.RepositoryHosts.GitHubHost.IsLoggedIn, x => x.RepositoryHosts.EnterpriseHost.IsLoggedIn, (x, y) => { var canLogInToGitHub = x.Value == false; var canLogInToEnterprise = y.Value == false; return(canLogInToGitHub && canLogInToEnterprise ? LoginMode.DotComOrEnterprise : canLogInToGitHub?LoginMode.DotComOnly : canLogInToEnterprise ? LoginMode.EnterpriseOnly : LoginMode.None); }).ToProperty(this, x => x.LoginMode); AuthenticationResults = Observable.Amb( loginToGitHubViewModel.Login, EnterpriseLogin.Login); CancelCommand = ReactiveCommand.Create(); }
public LoginCredentialsViewModel( IConnectionManager connectionManager, ILoginToGitHubViewModel loginToGitHubViewModel, ILoginToGitHubForEnterpriseViewModel loginToGitHubEnterpriseViewModel) { ConnectionManager = connectionManager; GitHubLogin = loginToGitHubViewModel; EnterpriseLogin = loginToGitHubEnterpriseViewModel; isLoginInProgress = this.WhenAny( x => x.GitHubLogin.IsLoggingIn, x => x.EnterpriseLogin.IsLoggingIn, (x, y) => x.Value || y.Value ).ToProperty(this, vm => vm.IsLoginInProgress); UpdateLoginMode(); connectionManager.Connections.CollectionChanged += (_, __) => UpdateLoginMode(); Done = Observable.Merge( loginToGitHubViewModel.Login, loginToGitHubViewModel.LoginViaOAuth, loginToGitHubEnterpriseViewModel.Login, loginToGitHubEnterpriseViewModel.LoginViaOAuth) .Where(x => x != null); }
public LoginControlViewModel( IRepositoryHosts hosts, ILoginToGitHubViewModel loginToGitHubViewModel, ILoginToGitHubForEnterpriseViewModel loginToGitHubEnterpriseViewModel) { Title = Resources.LoginTitle; RepositoryHosts = hosts; GitHubLogin = loginToGitHubViewModel; EnterpriseLogin = loginToGitHubEnterpriseViewModel; isLoginInProgress = this.WhenAny( x => x.GitHubLogin.IsLoggingIn, x => x.EnterpriseLogin.IsLoggingIn, (x, y) => x.Value || y.Value ).ToProperty(this, vm => vm.IsLoginInProgress); loginMode = this.WhenAny( x => x.RepositoryHosts.GitHubHost.IsLoggedIn, x => x.RepositoryHosts.EnterpriseHost.IsLoggedIn, (x, y) => { var canLogInToGitHub = x.Value == false; var canLogInToEnterprise = y.Value == false; return canLogInToGitHub && canLogInToEnterprise ? LoginMode.DotComOrEnterprise : canLogInToGitHub ? LoginMode.DotComOnly : canLogInToEnterprise ? LoginMode.EnterpriseOnly : LoginMode.None; }).ToProperty(this, x => x.LoginMode); AuthenticationResults = Observable.Merge( loginToGitHubViewModel.Login, EnterpriseLogin.Login); }
public LoginControlViewModel( IConnectionManager connectionManager, ILoginToGitHubViewModel loginToGitHubViewModel, ILoginToGitHubForEnterpriseViewModel loginToGitHubEnterpriseViewModel) { Title = Resources.LoginTitle; ConnectionManager = connectionManager; GitHubLogin = loginToGitHubViewModel; EnterpriseLogin = loginToGitHubEnterpriseViewModel; isLoginInProgress = this.WhenAny( x => x.GitHubLogin.IsLoggingIn, x => x.EnterpriseLogin.IsLoggingIn, (x, y) => x.Value || y.Value ).ToProperty(this, vm => vm.IsLoginInProgress); UpdateLoginMode(); connectionManager.Connections.CollectionChanged += (_, __) => UpdateLoginMode(); AuthenticationResults = Observable.Merge( loginToGitHubViewModel.Login, EnterpriseLogin.Login); }