/// <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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        /// <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;
        }
Esempio n. 7
0
        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>());
        }