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);
        }
Exemplo n.º 2
0
        public UserAccountViewModel(IUserAccount userAccount)
        {
            UserAccount = userAccount;

            AccountName = userAccount.AccountName;

            Task <Person> personTask;

            try
            {
                IDataSourceFactory dataSourceFactory = DataSourceFactory.Default;
                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 = AsyncProperty.Create(personTask, x => x?.Image.Url);
            NameAsync           = AsyncProperty.Create(personTask, x => x?.DisplayName, Resources.UiLoadingMessage);
        }