public UserAccountViewModel(IUserAccount userAccount) { UserAccount = userAccount; AccountName = userAccount.AccountName; Task <Person> personTask; try { var dataSourceFactory = GoogleCloudExtensionPackage.Instance.GetMefService <IDataSourceFactory>(); IGPlusDataSource dataSource = dataSourceFactory.CreatePlusDataSource(userAccount.GetGoogleCredential()); personTask = dataSource.GetProfileAsync(); } catch (Exception) { personTask = Task.FromResult <Person>(null); } // TODO: Show the default image while it is being loaded. ProfilePictureAsync = AsyncPropertyUtils.CreateAsyncProperty(personTask, x => x?.Image.Url); NameAsync = AsyncPropertyUtils.CreateAsyncProperty( personTask, x => x?.DisplayName, Resources.CloudExplorerLoadingMessage); }
private GceStepViewModel(GceStepContent content) { _content = content; Instances = AsyncPropertyUtils.CreateAsyncProperty(GetAllWindowsInstances()); ManageCredentialsCommand = new ProtectedCommand(OnManageCredentialsCommand, canExecuteCommand: false); }
private void StartLoadProjects() { if (CredentialsStore.Default.CurrentAccount != null) { LoadTask = AsyncPropertyUtils.CreateAsyncProperty(LoadProjectsAsync()); } else { LoadTask = null; } }
public UserAccountViewModel(UserAccount userAccount) { UserAccount = userAccount; AccountName = userAccount.AccountName; var dataSource = new GPlusDataSource(userAccount.GetGoogleCredential(), GoogleCloudExtensionPackage.VersionedApplicationName); var personTask = dataSource.GetProfileAsync(); // TODO: Show the default image while it is being loaded. ProfilePictureAsync = AsyncPropertyUtils.CreateAsyncProperty(personTask, x => x?.Image.Url); NameAsync = AsyncPropertyUtils.CreateAsyncProperty(personTask, x => x?.DisplayName, Resources.CloudExplorerLoadingMessage); }
private void UpdateUserProfile() { if (_plusDataSource.Value != null) { var profileTask = _plusDataSource.Value.GetProfileAsync(); ProfilePictureAsync = AsyncPropertyUtils.CreateAsyncProperty(profileTask, x => x?.Image.Url); ProfileNameAsync = AsyncPropertyUtils.CreateAsyncProperty( profileTask, x => x?.Emails.FirstOrDefault()?.Value, Resources.CloudExplorerLoadingMessage); } else { ProfilePictureAsync = null; ProfileNameAsync = new AsyncProperty <string>(Resources.CloudExplorerSelectAccountMessage); } }