/// <summary>
        /// For Testing.
        /// </summary>
        /// <param name="owner">The window or mock window that owns this ViewModel.</param>
        /// <param name="mockedProjectList">An override of the result of <see cref="CredentialsStore.CurrentAccountProjects"/>.</param>
        /// <param name="promptAccountManagement">Action to prompt managing accounts.</param>
        internal PickProjectIdViewModel(
            IPickProjectIdWindow owner,
            Action promptAccountManagement,
            Task <IEnumerable <Project> > mockedProjectList)
        {
            _owner = owner;
            _promptAccountManagement = promptAccountManagement;
            _mockedProjectList       = mockedProjectList;

            ChangeUserCommand = new ProtectedCommand(OnChangeUserCommand);
            OkCommand         = new ProtectedCommand(OnOkCommand, canExecuteCommand: false);
            RefreshCommand    = new ProtectedCommand(OnRefreshCommand, canExecuteCommand: false);
            StartLoadProjects();
        }
        /// <summary>
        /// For Testing.
        /// </summary>
        /// <param name="owner">The window or mock window that owns this ViewModel.</param>
        /// <param name="dataSourceFactory">The factory of the source of projects.</param>
        /// <param name="promptAccountManagement">Action to prompt managing accounts.</param>
        internal PickProjectIdViewModel(
            IPickProjectIdWindow owner,
            Func <IResourceManagerDataSource> dataSourceFactory,
            Action promptAccountManagement)
        {
            _owner = owner;
            _resourceManagerDataSourceFactory = dataSourceFactory;
            _promptAccountManagement          = promptAccountManagement;

            ChangeUserCommand = new ProtectedCommand(OnChangeUser);
            OkCommand         = new ProtectedCommand(OnOk, false);
            SkipCommand       = new ProtectedCommand(OnSkip);
            ProjectId         = CredentialsStore.Default.CurrentProjectId;
            StartLoadProjects();
        }
 public PickProjectIdViewModel(IPickProjectIdWindow owner, string helpText, bool allowAccountChange)
     : this(owner, ManageAccountsWindow.PromptUser, null)
 {
     AllowAccountChange = allowAccountChange;
     HelpText           = helpText;
 }
 public PickProjectIdViewModel(IPickProjectIdWindow owner)
     : this(owner, DataSourceFactories.CreateResourceManagerDataSource, ManageAccountsWindow.PromptUser)
 {
 }