public ManageNewServerViewModel(IManageServerSourceModel updateManager, Task <IRequestServiceNameViewModel> requestServiceNameViewModel, IEventAggregator aggregator, IAsyncWorker asyncWorker, IExternalProcessExecutor executor)
     : this(updateManager, aggregator, asyncWorker, executor)
 {
     VerifyArgument.IsNotNull("requestServiceNameViewModel", requestServiceNameViewModel);
     RequestServiceNameViewModel = requestServiceNameViewModel;
     GetLoadComputerNamesTask(null);
 }
        public ManageNewServerViewModel(IManageServerSourceModel updateManager, IEventAggregator aggregator, IAsyncWorker asyncWorker, IExternalProcessExecutor executor)
            : base("ServerSource")
        {
            VerifyArgument.IsNotNull("executor", executor);
            VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
            VerifyArgument.IsNotNull("updateManager", updateManager);
            VerifyArgument.IsNotNull("aggregator", aggregator);

            AsyncWorker = asyncWorker;
            Protocols   = new[] { "https", "http" };
            Protocol    = Protocols[0];

            Ports = new ObservableCollection <string> {
                "3143", "3142"
            };
            SelectedPort   = Ports[0];
            _updateManager = updateManager;

            _warewolfserverName = updateManager.ServerName;
            Header     = Resources.Languages.Core.ServerSourceNewHeaderLabel;
            HeaderText = Resources.Languages.Core.ServerSourceNewHeaderLabel;

            TestCommand       = new DelegateCommand(CheckVersionConflict, CanTest);
            OkCommand         = new DelegateCommand(SaveConnection, CanSave);
            CancelTestCommand = new DelegateCommand(CancelTest, CanCancelTest);
        }
        public ManageNewServerViewModel(IManageServerSourceModel updateManager, IEventAggregator aggregator, IServerSource serverSource, IAsyncWorker asyncWorker, IExternalProcessExecutor executor)
            : this(updateManager, aggregator, asyncWorker, executor)
        {
            VerifyArgument.IsNotNull("serverSource", serverSource);

            _warewolfserverName = updateManager.ServerName;
            AsyncWorker.Start(() => updateManager.FetchSource(serverSource.ID), source =>
            {
                _serverSource = source;
                _serverSource.ResourcePath = serverSource.ResourcePath;
                GetLoadComputerNamesTask(() =>
                {
                    FromModel(_serverSource);
                    Item = ToModel();
                    SetupHeaderTextFromExisting();
                }
                                         );
            });
        }