void CheckPreselectedItems(Guid environmentID) { if (Preselected != null && Preselected.Any()) { var envId = Preselected.First().Server.EnvironmentID; if (envId != environmentID) { ConnectControlViewModel.SelectedConnection = ConnectControlViewModel.Servers.FirstOrDefault(a => a.EnvironmentID == envId); if (ConnectControlViewModel.SelectedConnection != null) { var server = ConnectControlViewModel.SelectedConnection; if (server.Permissions == null) { server.Permissions = new List <IWindowsGroupPermission>(); } ConnectControlViewModel.Connect(ConnectControlViewModel.SelectedConnection); } } else { SelectItemsForDeploy(Preselected); Preselected = null; } } }
public ExplorerViewModel(IShellViewModel shellViewModel, Microsoft.Practices.Prism.PubSubEvents.IEventAggregator aggregator, bool shouldUpdateActiveEnvironment, Action <IExplorerItemViewModel> selectAction = null, bool loadLocalHost = true) { if (shellViewModel == null) { throw new ArgumentNullException(nameof(shellViewModel)); } var localhostEnvironment = CreateEnvironmentFromServer(shellViewModel.LocalhostServer, shellViewModel); _shellViewModel = shellViewModel; _selectAction = selectAction; localhostEnvironment.SelectAction = selectAction ?? (a => { }); localhostEnvironment.IsSelected = true; // ReSharper disable VirtualMemberCallInContructor Environments = new ObservableCollection <IEnvironmentViewModel> { localhostEnvironment }; if (loadLocalHost) #pragma warning disable 4014 { LoadEnvironment(localhostEnvironment); } #pragma warning restore 4014 ConnectControlViewModel = new ConnectControlViewModel(shellViewModel.LocalhostServer, aggregator); ConnectControlViewModel.ShouldUpdateActiveEnvironment = shouldUpdateActiveEnvironment; ShowConnectControl = true; ConnectControlViewModel.ServerConnected += ServerConnected; ConnectControlViewModel.ServerDisconnected += ServerDisconnected; ConnectControlViewModel.ServerHasDisconnected += ServerDisconnectDetected; ConnectControlViewModel.ServerReConnected += ServerReConnected; ConnectControlViewModel.SelectedEnvironmentChanged += ConnectControlViewModelOnSelectedEnvironmentChanged; }
public DeployDestinationViewModel(IShellViewModel shellViewModel, IEventAggregator aggregator) : base(shellViewModel, aggregator, false) { ConnectControlViewModel = new ConnectControlViewModel(shellViewModel.LocalhostServer, aggregator, shellViewModel.ExplorerViewModel.ConnectControlViewModel.Servers); ConnectControlViewModel.ServerConnected += async(sender, server) => { await ServerConnected(sender, server); }; ConnectControlViewModel.ServerDisconnected += ServerDisconnected; SelectedEnvironment = _environments.FirstOrDefault(); RefreshCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => RefreshEnvironment(SelectedEnvironment.ResourceId)); }
public DeploySourceExplorerViewModel(IShellViewModel shellViewModel, Microsoft.Practices.Prism.PubSubEvents.IEventAggregator aggregator, IDeployStatsViewerViewModel statsArea, IEnvironmentViewModel selectedEnvironment) { if (shellViewModel == null) { throw new ArgumentNullException(nameof(shellViewModel)); } var localhostEnvironment = CreateEnvironmentFromServer(shellViewModel.LocalhostServer, shellViewModel); _shellViewModel = shellViewModel; _selectAction = SelectAction; _selectedEnv = selectedEnvironment; Environments = new ObservableCollection <IEnvironmentViewModel> { localhostEnvironment }; LoadLocalHostEnvironment(localhostEnvironment); ConnectControlViewModel = new ConnectControlViewModel(_shellViewModel.LocalhostServer, aggregator, _shellViewModel.ExplorerViewModel.ConnectControlViewModel.Servers); ShowConnectControl = true; ConnectControlViewModel.ServerDisconnected += ServerDisconnected; _statsArea = statsArea; foreach (var environmentViewModel in _environments) { environmentViewModel.SelectAction = SelectAction; } if (ConnectControlViewModel.SelectedConnection != null && !ConnectControlViewModel.SelectedConnection.IsLocalHost) { UpdateItemForDeploy(ConnectControlViewModel.SelectedConnection.EnvironmentID); } IsRefreshing = false; ShowConnectControl = false; RefreshCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => RefreshEnvironment(SelectedEnvironment.ResourceId)); ConnectControlViewModel.SelectedEnvironmentChanged += ConnectControlSelectedExplorerEnvironmentChanged; ConnectControlViewModel.ServerConnected += (sender, server) => { IsDeployLoading = true; ServerConnectedAsync(server).ContinueWith(t => { IsDeployLoading = false; }, TaskContinuationOptions.ExecuteSynchronously); }; IsDeploy = true; }
public MergeServiceViewModel(IShellViewModel shellViewModel, Microsoft.Practices.Prism.PubSubEvents.IEventAggregator aggregator, IExplorerItemViewModel selectedResource, IMergeView mergeView, IServer selectedServer) { if (shellViewModel == null) { throw new ArgumentNullException(nameof(shellViewModel)); } var localhostEnvironment = CreateEnvironmentFromServer(shellViewModel.LocalhostServer, shellViewModel); localhostEnvironment.Children = shellViewModel.ExplorerViewModel?.Environments[0].Children; _shellViewModel = shellViewModel; _selectedResource = selectedResource; ResourceToMerge = _selectedResource.IsVersion ? _selectedResource.Parent.ResourceName : _selectedResource.ResourceName; _view = mergeView; Environments = new ObservableCollection <IEnvironmentViewModel> { localhostEnvironment }; MergeConnectControlViewModel = new ConnectControlViewModel(_shellViewModel.LocalhostServer, aggregator, _shellViewModel.ExplorerViewModel.ConnectControlViewModel.Servers) { SelectedConnection = selectedServer }; LoadVersions(selectedResource.Server); ShowConnectControl = true; MergeConnectControlViewModel.CanEditServer = false; MergeConnectControlViewModel.CanCreateServer = false; MergeConnectControlViewModel.ServerConnected += async(sender, server) => { await ServerConnectedAsync(server).ConfigureAwait(false); }; MergeConnectControlViewModel.ServerDisconnected += ServerDisconnected; ShowConnectControl = false; IsRefreshing = false; RefreshCommand = new DelegateCommand(() => RefreshEnvironment(SelectedEnvironment.ResourceId).ConfigureAwait(false)); CancelCommand = new DelegateCommand(Cancel); MergeCommand = new DelegateCommand(Merge, CanMerge); MergeConnectControlViewModel.SelectedEnvironmentChanged += async(sender, id) => { await MergeExplorerViewModelSelectedEnvironmentChangedAsync(sender).ConfigureAwait(false); }; }
public DeploySourceExplorerViewModel(IShellViewModel shellViewModel, Microsoft.Practices.Prism.PubSubEvents.IEventAggregator aggregator, IDeployStatsViewerViewModel statsArea) { if (shellViewModel == null) { throw new ArgumentNullException(nameof(shellViewModel)); } var localhostEnvironment = CreateEnvironmentFromServer(shellViewModel.LocalhostServer, shellViewModel); _shellViewModel = shellViewModel; _selectAction = SelectAction; // ReSharper disable once VirtualMemberCallInContructor Environments = new ObservableCollection <IEnvironmentViewModel> { localhostEnvironment }; // ReSharper disable once VirtualMemberCallInContructor LoadEnvironment(localhostEnvironment); ConnectControlViewModel = new ConnectControlViewModel(_shellViewModel.LocalhostServer, aggregator, _shellViewModel.ExplorerViewModel.ConnectControlViewModel.Servers); ShowConnectControl = true; ConnectControlViewModel.ServerConnected += async(sender, server) => { await ServerConnected(sender, server); }; ConnectControlViewModel.ServerDisconnected += ServerDisconnected; _statsArea = statsArea; foreach (var environmentViewModel in _environments) { environmentViewModel.SelectAction = SelectAction; } if (ConnectControlViewModel.SelectedConnection != null) { UpdateItemForDeploy(ConnectControlViewModel.SelectedConnection.EnvironmentID); } IsRefreshing = false; ShowConnectControl = false; RefreshCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => RefreshEnvironment(SelectedEnvironment.ResourceId)); ConnectControlViewModel.SelectedEnvironmentChanged += async(sender, id) => { await DeploySourceExplorerViewModelSelectedEnvironmentChanged(sender, id); }; IsDeploy = true; }