/// <summary> /// The predicate used to detemine which resources are going to be overridden /// </summary> public bool DeploySummaryPredicateExisting(IExplorerItemModel node, DeployNavigationViewModel targetNavViewModel) { var vm = node; if (vm == null || !vm.IsChecked.GetValueOrDefault(false)) { return(false); } if (targetNavViewModel != null && targetNavViewModel.Environment != null) { IEnvironmentModel targetEnvironment = targetNavViewModel.Environment; if (targetEnvironment == null || targetEnvironment.ResourceRepository == null) { return(false); } var conflictingItems = targetEnvironment.ResourceRepository.All() .Where(r => r.ID == vm.ResourceId) .Select(r => new Tuple <IResourceModel, IContextualResourceModel, IExplorerItemModel, DeployNavigationViewModel>(r, r as IContextualResourceModel, node, targetNavViewModel)) .ToList(); conflictingItems.ForEach(AddConflictingResources); return(targetEnvironment.ResourceRepository.All() .Any(r => r.ID == vm.ResourceId)); } return(false); }
DeployNavigationViewModel CreateViewModel(IEnvironmentRepository environmentRepository, Mock <IResourceRepository> mockResourceRepository) { StudioResourceRepository studioResourceRepository = BuildExplorerItems(mockResourceRepository.Object); var navigationViewModel = new DeployNavigationViewModel(new Mock <IEventAggregator>().Object, AsyncWorkerTests.CreateSynchronousAsyncWorker().Object, environmentRepository, studioResourceRepository, _target, new Mock <IConnectControlSingleton>().Object); return(navigationViewModel); }
static DeployNavigationViewModel CreateDeployNavigationViewModel(IEnvironmentModel environmentModel, IEventAggregator eventAggregator, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, StudioResourceRepository studioResourceRepository) { DeployNavigationViewModel navigationViewModel = new DeployNavigationViewModel(eventAggregator, asyncWorker, environmentRepository, studioResourceRepository, true, new Mock <IConnectControlSingleton>().Object) { Environment = environmentModel }; return(navigationViewModel); }
protected static void SetupResources(DeployStatsCalculator deployStatsCalculator, bool isChecked) { IEnvironmentModel environmentModel; IExplorerItemModel resourceVm; var studioResourceRepository = CreateModels(isChecked, out environmentModel, out resourceVm); var navVm = new DeployNavigationViewModel(new Mock <IEventAggregator>().Object, AsyncWorkerTests.CreateSynchronousAsyncWorker().Object, new Mock <IEnvironmentRepository>().Object, studioResourceRepository, true, new Mock <IConnectControlSingleton>().Object) { Environment = environmentModel }; resourceVm.IsChecked = isChecked; deployStatsCalculator.DeploySummaryPredicateExisting(resourceVm, navVm); }
void Init(bool addWizardChildToResource, bool shouldLoadResources) { SetupMockEnvironment(shouldLoadResources); Mock <IResourceRepository> mockResourceRepository; SetUpResources(addWizardChildToResource, out mockResourceRepository); _vm = CreateViewModel(mockResourceRepository); _mockEnvironmentModel.Setup(model => model.IsLocalHost).Returns(true); _vm.Environment = _mockEnvironmentModel.Object; }
/// <summary> /// Shared Ctor initialisation /// </summary> /// <param name="asyncWorker"></param> /// <param name="serverProvider"></param> /// <param name="environmentRepository"></param> /// <param name="eventAggregator"></param> /// <param name="connectControl"></param> /// <param name="deployStatsCalculator"></param> private void Initialize(IAsyncWorker asyncWorker, IEnvironmentModelProvider serverProvider, IEnvironmentRepository environmentRepository, IEventAggregator eventAggregator, IConnectControlSingleton connectControl, IDeployStatsCalculator deployStatsCalculator = null) { EnvironmentRepository = environmentRepository; _deployStatsCalculator = deployStatsCalculator ?? new DeployStatsCalculator(); _serverProvider = serverProvider; _servers = new ObservableCollection <IEnvironmentModel>(); _targetStats = new ObservableCollection <DeployStatsTO>(); _sourceStats = new ObservableCollection <DeployStatsTO>(); Target = new DeployNavigationViewModel(eventAggregator, asyncWorker, environmentRepository, StudioResourceRepository, true, connectControl); Source = new DeployNavigationViewModel(eventAggregator, asyncWorker, environmentRepository, StudioResourceRepository, false, connectControl); SetupPredicates(); SetupCommands(); LoadServers(); ExplorerItemModel.OnCheckedStateChangedAction += OnCheckedStateChangedAction; }
public IEnumerable <IExplorerItemModel> CheckForNamingConflicts(List <IExplorerItemModel> items, DeployNavigationViewModel targetNavViewModel) { var vm = items; if (vm == null || !vm.All(a => a.IsChecked.GetValueOrDefault(false))) { return(new List <IExplorerItemModel>()); } if (targetNavViewModel != null && targetNavViewModel.Environment != null) { IEnvironmentModel targetEnvironment = targetNavViewModel.Environment; if (targetEnvironment == null || targetEnvironment.ResourceRepository == null) { return(new List <IExplorerItemModel>()); } var all = targetEnvironment.ResourceRepository.All(); if (all != null) { var conflictingItems = all.Join(vm, a => a.Category, explorerItemModel => explorerItemModel.ResourcePath, (a, explorerItemModel) => new { a, explorerItemModel }).Where(@t => @t.explorerItemModel.ResourceId != @t.a.ID).Select(@t => @t.explorerItemModel); return(conflictingItems); } } return(new List <IExplorerItemModel>()); }