Beispiel #1
0
        void SetTreeStateBack(IEnumerable <IExplorerItemModel> expandedList, IExplorerItemModel selectedItem)
        {
            if (expandedList != null)
            {
                IStudioResourceRepository studioResourceRepository = StudioResourceRepository;
                foreach (var item in expandedList)
                {
                    var environment = studioResourceRepository.FindItemById(item.EnvironmentId);
                    if (environment != null)
                    {
                        IExplorerItemModel explorerItem = environment;
                        if (!string.IsNullOrEmpty(item.ResourcePath))
                        {
                            var strings = item.ResourcePath.Split('\\');
                            foreach (var s in strings)
                            {
                                if (explorerItem != null)
                                {
                                    explorerItem = explorerItem.Children.FirstOrDefault(c => c.DisplayName == s);
                                }
                            }
                        }
                        if (explorerItem != null)
                        {
                            explorerItem.IsExplorerExpanded = true;
                        }
                    }
                }
            }

            if (selectedItem != null)
            {
                BringItemIntoView(selectedItem.EnvironmentId, selectedItem.ResourceId);
            }
        }
Beispiel #2
0
        void TreeViewDrop(object sender, DragEventArgs e)
        {
            TreeViewItem t = sender as TreeViewItem;
            IStudioResourceRepository rep = StudioResourceRepository.Instance;

            if (t != null)
            {
                ExplorerItemModel destination = t.Header as ExplorerItemModel;
                if (destination != null)
                {
                    var dataObject = e.Data;
                    if (dataObject != null && dataObject.GetDataPresent(GlobalConstants.ExplorerItemModelFormat))
                    {
                        var explorerItemModel = dataObject.GetData(GlobalConstants.ExplorerItemModelFormat);
                        try
                        {
                            ExplorerItemModel source = explorerItemModel as ExplorerItemModel;
                            if (ShouldNotMove(source, destination))
                            {
                                e.Handled = true;
                            }
                            else
                            {
                                MoveItem(source, destination, rep);
                            }
                        }
                        finally { e.Handled = true; }
                    }
                }
            }
        }
 public ResourcePickerDialog(enDsfActivityType activityType, IEnvironmentRepository environmentRepository, IEventAggregator eventPublisher, IAsyncWorker asyncWorker, bool isFromDrop, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton)
 {
     VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
     VerifyArgument.IsNotNull("eventPublisher", eventPublisher);
     VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
     VerifyArgument.IsNotNull("connectControlSingleton", connectControlSingleton);
     _studio = studioResourceRepository;
     _navigationViewModel = new NavigationViewModel(eventPublisher, asyncWorker, null, environmentRepository, studioResourceRepository,connectControlSingleton, () => {}, isFromDrop, activityType);
     _activityType = activityType;
 }
 //, IWizardEngine wizardEngine
 void Initialize(Guid id, IEnvironmentConnection environmentConnection, IResourceRepository resourceRepository, IStudioResourceRepository studioResourceRepository)
 {
     VerifyArgument.IsNotNull("environmentConnection", environmentConnection);
     VerifyArgument.IsNotNull("studioResourceRepository", studioResourceRepository);
     CanStudioExecute = true;
     _studioRepo = studioResourceRepository;
     ID = id; // The resource ID
     Connection = environmentConnection;
     // MUST subscribe to Guid.Empty as memo.InstanceID is NOT set by server!
     ResourceRepository = resourceRepository ?? new ResourceRepository(this);
 }
 //, IWizardEngine wizardEngine
 void Initialize(Guid id, IEnvironmentConnection environmentConnection, IResourceRepository resourceRepository, IStudioResourceRepository studioResourceRepository)
 {
     VerifyArgument.IsNotNull("environmentConnection", environmentConnection);
     VerifyArgument.IsNotNull("studioResourceRepository", studioResourceRepository);
     CanStudioExecute = true;
     _studioRepo      = studioResourceRepository;
     ID         = id; // The resource ID
     Connection = environmentConnection;
     // MUST subscribe to Guid.Empty as memo.InstanceID is NOT set by server!
     ResourceRepository = resourceRepository ?? new ResourceRepository(this);
 }
Beispiel #6
0
        public void BringItemIntoView(Guid environmentId, Guid resourceId)
        {
            IStudioResourceRepository studioResourceRepository = StudioResourceRepository;
            IExplorerItemModel        item = studioResourceRepository.FindItemByIdAndEnvironment(resourceId, environmentId);

            if (item != null)
            {
                item.IsExplorerSelected = true;
                RecusiveExplorerExpandParent(item.Parent);
            }
        }
Beispiel #7
0
        protected NavigationViewModelBase(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository)
        {
            VerifyArgument.IsNotNull("eventPublisher", eventPublisher);
            VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
            VerifyArgument.IsNotNull("environmentRepository", environmentRepository);

            AsyncWorker     = asyncWorker;
            EventAggregator = eventPublisher;
            EventAggregator.Subscribe(this);
            EnvironmentRepository    = environmentRepository;
            StudioResourceRepository = studioResourceRepository;
        }
 internal ConnectControlSingleton(IStudioResourceRepository studioResourceRepository,
                                  IAsyncWorker asyncWorker,
                                  IEnvironmentModelProvider serverProvider,
                                  IEnvironmentRepository environmentRepository)
 {
     VerifyArgument.IsNotNull("studioResourceRepository", studioResourceRepository);
     VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
     VerifyArgument.IsNotNull("serverProvider", serverProvider);
     VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
     _studioResourceRepository = studioResourceRepository;
     _asyncWorker           = asyncWorker;
     _serverProvider        = serverProvider;
     _environmentRepository = environmentRepository;
     Servers = new ObservableCollection <IConnectControlEnvironment>();
     LoadServers();
 }
 internal ConnectControlSingleton(IStudioResourceRepository studioResourceRepository,
                                  IAsyncWorker asyncWorker,
                                  IEnvironmentModelProvider serverProvider,
                                  IEnvironmentRepository environmentRepository)
 {
     VerifyArgument.IsNotNull("studioResourceRepository", studioResourceRepository);
     VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
     VerifyArgument.IsNotNull("serverProvider", serverProvider);
     VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
     _studioResourceRepository = studioResourceRepository;
     _asyncWorker = asyncWorker;
     _serverProvider = serverProvider;
     _environmentRepository = environmentRepository;
     Servers = new ObservableCollection<IConnectControlEnvironment>();
     LoadServers();
 }
Beispiel #10
0
 public DeployViewModel(IAsyncWorker asyncWorker, IEnvironmentModelProvider serverProvider, IEnvironmentRepository environmentRepository, IEventAggregator eventAggregator, IStudioResourceRepository studioResourceRepository, IConnectControlViewModel sourceConnectControlVm, IConnectControlViewModel destinationConnectControlVm, IDeployStatsCalculator deployStatsCalculator = null, Guid?resourceID = null, Guid?environmentID = null, IConnectControlSingleton connectControlSingleton = null)
     : base(eventAggregator)
 {
     VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
     if (connectControlSingleton == null)
     {
         connectControlSingleton = ConnectControlSingleton.Instance;
     }
     if (environmentID.HasValue)
     {
         _initialItemEnvironmentID = environmentID.Value;
     }
     _initialItemResourceID      = resourceID.GetValueOrDefault(Guid.Empty);
     DestinationServerHasDropped = false;
     StudioResourceRepository    = studioResourceRepository;
     Initialize(asyncWorker, serverProvider, environmentRepository, eventAggregator, connectControlSingleton, deployStatsCalculator);
     SourceConnectControlViewModel = sourceConnectControlVm ?? new ConnectControlViewModel(ChangeSourceServer, "Source Server:", false);
     TargetConnectControlViewModel = destinationConnectControlVm ?? new ConnectControlViewModel(ChangeDestinationServer, "Destination Server:", false);
     TargetConnectControlViewModel.SetTargetEnvironment();
 }
Beispiel #11
0
 public DeployNavigationViewModel(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository, bool target, IConnectControlSingleton connectControlSingleton)
     : base(eventPublisher, asyncWorker, environmentRepository, studioResourceRepository)
 {
     _target = target;
     ConnectControlSingleton = connectControlSingleton;
 }
Beispiel #12
0
        public NavigationViewModel(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, Guid?context, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton, System.Action updateWorkSpaceItems, bool isFromActivityDrop = false, enDsfActivityType activityType = enDsfActivityType.All, NavigationViewModelType navigationViewModelType = NavigationViewModelType.Explorer)
            : base(eventPublisher, asyncWorker, environmentRepository, studioResourceRepository, updateWorkSpaceItems)
        {
            VerifyArgument.IsNotNull("eventPublisher", eventPublisher);
            VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
            VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
            VerifyArgument.IsNotNull("connectControlSingleton", connectControlSingleton);

            _eventPublisher          = eventPublisher;
            _connectControlSingleton = connectControlSingleton;
            _eventPublisher.Subscribe(this);
            EnvironmentRepository = environmentRepository;
            Context = context;

            DsfActivityType               = activityType;
            _fromActivityDrop             = isFromActivityDrop;
            _navigationViewModelType      = navigationViewModelType;
            Environments                  = new List <IEnvironmentModel>();
            ExplorerItemModels            = new ObservableCollection <IExplorerItemModel>();
            CircularProgressBarVisibility = Visibility.Hidden;
            RefreshButtonVisibility       = Visibility.Visible;
        }
 public MainViewModelMock(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IVersionChecker versionChecker, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton, IConnectControlViewModel connectControlViewModel, bool createDesigners = true, IBrowserPopupController browserPopupController = null)
     : base(eventPublisher, asyncWorker, environmentRepository, versionChecker, createDesigners, browserPopupController, studioResourceRepository:studioResourceRepository, connectControlSingleton:connectControlSingleton, connectControlViewModel: connectControlViewModel)
 {
 }
Beispiel #14
0
 protected NavigationViewModelBase(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository, System.Action updateWorkSpaceItems)
     : this(eventPublisher, asyncWorker, environmentRepository, studioResourceRepository)
 {
     VerifyArgument.IsNotNull("updateWorkSpaceItems", updateWorkSpaceItems);
     UpdateWorkSpaceItems = updateWorkSpaceItems;
 }
Beispiel #15
0
 public ExplorerItemModel Clone(IConnectControlSingleton connectControlSingleton, IStudioResourceRepository studioResourceRepository)
 {
     ExplorerItemModel result = new ExplorerItemModel(connectControlSingleton, studioResourceRepository);
     var fieldInfos = GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
     foreach(FieldInfo field in fieldInfos)
     {
         if(field.FieldType.GetInterface("IList", false) == null)
         {
             field.SetValue(result, field.GetValue(this));
         }
         else
         {
             IList listObject = (IList)field.GetValue(result);
             if(listObject != null)
             {
                 foreach(ExplorerItemModel item in ((IList)field.GetValue(this)))
                 {
                     listObject.Add(item.Clone(connectControlSingleton, studioResourceRepository));
                 }
             }
         }
     }
     return result;
 }
 public EnvironmentModel(Guid id, IEnvironmentConnection environmentConnection, IResourceRepository resourceRepository, IStudioResourceRepository studioResourceRepository)
 {
     VerifyArgument.IsNotNull("resourceRepository", resourceRepository);
     Initialize(id, environmentConnection, resourceRepository, studioResourceRepository);
 }
Beispiel #17
0
 public ExplorerItemModel(IConnectControlSingleton connectControlSingleton, IStudioResourceRepository studioResourceRepository)
 {
     Children = new ObservableCollection<IExplorerItemModel>();
     _isAuthorized = true;
     _isConnected = true;
     _studioResourceRepository = studioResourceRepository;
     Children.CollectionChanged -= ChildrenCollectionChanged;
     Children.CollectionChanged += ChildrenCollectionChanged;
     _asyncWorker = new AsyncWorker();
     _activityNames = new Dictionary<ResourceType, Type>
         {
             {
                 ResourceType.DbService, typeof(DsfDatabaseActivity)
             },
             {
                 ResourceType.PluginService, typeof(DsfPluginActivity)
             },
             {
                 ResourceType.WebService, typeof(DsfWebserviceActivity)
             }
         };
     _connectControlSingleton = connectControlSingleton;
     _connectControlSingleton.ConnectedStatusChanged += ConnectedStatusChanged;
     ToggleVersionHistoryHeader = "Show Version History";
 }
Beispiel #18
0
        public static void MoveItem(ExplorerItemModel source, ExplorerItemModel destination, IStudioResourceRepository rep)
        {
            if (source != null)
            {
                if(source.EnvironmentId != destination.EnvironmentId)
                {
                    var popup = CustomContainer.Get<IPopupController>();
                    popup.Description = "You are not allowed to move items between Servers using the explorer. Please use the deploy instead";
                    popup.Buttons = MessageBoxButton.OK;
                    popup.Header = "Invalid Action";
                    popup.ImageType = MessageBoxImage.Error;
                    popup.Show();

                }
                else
                switch (destination.ResourceType)
                {
                    case ResourceType.Folder:
                    case ResourceType.Server:
                        rep.MoveItem(source, destination.ResourcePath);
                        break;
                    default:
                        rep.MoveItem(source, destination.Parent.ResourcePath);
                        break;
                }
            }
        }
Beispiel #19
0
 public MainViewModelMock(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IVersionChecker versionChecker, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton, IConnectControlViewModel connectControlViewModel, bool createDesigners = true, IBrowserPopupController browserPopupController = null)
     : base(eventPublisher, asyncWorker, environmentRepository, versionChecker, createDesigners, browserPopupController, studioResourceRepository: studioResourceRepository, connectControlSingleton: connectControlSingleton, connectControlViewModel: connectControlViewModel)
 {
 }
 //, IWizardEngine wizardEngine
 public EnvironmentModel(Guid id, IEnvironmentConnection environmentConnection, IStudioResourceRepository studioResourceRepository)
 {
     Initialize(id, environmentConnection, null, studioResourceRepository);
 }
 //, IWizardEngine wizardEngine
 public EnvironmentModel(Guid id, IEnvironmentConnection environmentConnection, IStudioResourceRepository studioResourceRepository)
 {
     Initialize(id, environmentConnection, null, studioResourceRepository);
 }
        static ExplorerItemModel SetupExplorerItemModelWithFolderAndOneChildMockedStudioRepository(string displayName, Guid envID, Guid resourceId, IConnectControlSingleton connectControlSingleton, out ExplorerItemModel resourceItem, IStudioResourceRepository repo)
        {
            var serverItem = new ExplorerItemModel(repo, AsyncWorkerTests.CreateSynchronousAsyncWorker().Object, connectControlSingleton)
            {
                ResourceType = ResourceType.Server,
                DisplayName = displayName,
                ResourceId = Guid.Empty,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID
            };
            var folderItem = new ExplorerItemModel(repo, AsyncWorkerTests.CreateSynchronousAsyncWorker().Object, connectControlSingleton)
            {
                ResourceType = ResourceType.Folder,
                DisplayName = Guid.NewGuid().ToString(),
                ResourceId = Guid.Empty,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID
            };

            resourceItem = new ExplorerItemModel(repo, AsyncWorkerTests.CreateSynchronousAsyncWorker().Object, connectControlSingleton)
            {
                ResourceType = ResourceType.WorkflowService,
                DisplayName = Guid.NewGuid().ToString(),
                ResourceId = resourceId,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID,
                IsExplorerSelected = true,
                Parent = folderItem,
                ResourcePath = folderItem.DisplayName
            };
            folderItem.Children.Add(resourceItem);
            serverItem.Children.Add(folderItem);
            return serverItem;
        }
        static IExplorerItemModel SetupExplorerItemModelWithFolderAndOneChild(string displayName, Guid envID, Guid resourceId, out IExplorerItemModel resourceItem, IStudioResourceRepository rep, IAsyncWorker worker, IConnectControlSingleton connectControlSingleton)
        {
            var serverItem = new ExplorerItemModel(rep, worker, connectControlSingleton)
            {
                ResourceType = ResourceType.Server,
                DisplayName = displayName,
                ResourceId = Guid.Empty,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID
            };
            var folderItem = new ExplorerItemModel(rep, worker, connectControlSingleton)
            {
                ResourceType = ResourceType.Folder,
                DisplayName = Guid.NewGuid().ToString(),
                ResourceId = Guid.Empty,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID
            };

            resourceItem = new ExplorerItemModel(rep, worker, connectControlSingleton)
            {
                ResourceType = ResourceType.WorkflowService,
                DisplayName = Guid.NewGuid().ToString(),
                ResourceId = resourceId,
                Permissions = Permissions.Administrator,
                EnvironmentId = envID,
                ResourcePath = "Path",
                IsExplorerSelected = true,
                Parent = folderItem
            };
            folderItem.Children.Add(resourceItem);
            serverItem.Children.Add(folderItem);
            return serverItem;
        }
Beispiel #24
0
 public ExplorerItemModel(IStudioResourceRepository studioResourceRepository, IAsyncWorker asyncWorker, IConnectControlSingleton connectControlSingleton)
     : this(connectControlSingleton, studioResourceRepository)
 {
     _studioResourceRepository = studioResourceRepository;
     _asyncWorker = asyncWorker;
     _connectControlSingleton = connectControlSingleton;
 }
Beispiel #25
0
        public static void MoveItem(ExplorerItemModel source, ExplorerItemModel destination, IStudioResourceRepository rep)
        {
            if (source != null)
            {
                if (source.EnvironmentId != destination.EnvironmentId)
                {
                    var popup = CustomContainer.Get <IPopupController>();
                    popup.Description = "You are not allowed to move items between Servers using the explorer. Please use the deploy instead";
                    popup.Buttons     = MessageBoxButton.OK;
                    popup.Header      = "Invalid Action";
                    popup.ImageType   = MessageBoxImage.Error;
                    popup.Show();
                }
                else
                {
                    switch (destination.ResourceType)
                    {
                    case ResourceType.Folder:
                    case ResourceType.Server:
                        rep.MoveItem(source, destination.ResourcePath);
                        break;

                    default:
                        rep.MoveItem(source, destination.Parent.ResourcePath);
                        break;
                    }
                }
            }
        }
        public ExplorerViewModel(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository, IConnectControlSingleton connectControlSingleton, IMainViewModel mainViewModel, bool isFromActivityDrop = false, enDsfActivityType activityType = enDsfActivityType.All, System.Action updateWorkSpaceItems = null, IConnectControlViewModel connectControlViewModel = null)
            : base(eventPublisher)
        {
            VerifyArgument.IsNotNull("asyncWorker", asyncWorker);
            VerifyArgument.IsNotNull("environmentRepository", environmentRepository);
            VerifyArgument.IsNotNull("connectControlSingleton", connectControlSingleton);

            EnvironmentRepository = environmentRepository;

            NavigationViewModel = new NavigationViewModel(eventPublisher, asyncWorker, Context, environmentRepository, studioResourceRepository, connectControlSingleton, updateWorkSpaceItems, isFromActivityDrop, activityType)
            {
                Parent = this
            };

            ConnectControlViewModel = connectControlViewModel ?? new ConnectControlViewModel(mainViewModel, AddEnvironment, "Connect:", true);
        }
 public EnvironmentModel(Guid id, IEnvironmentConnection environmentConnection, IResourceRepository resourceRepository, IStudioResourceRepository studioResourceRepository)
 {
     VerifyArgument.IsNotNull("resourceRepository", resourceRepository);
     Initialize(id, environmentConnection, resourceRepository, studioResourceRepository);
 }
 public TestResourcePickerDialog(enDsfActivityType activityType, IEnvironmentRepository environmentRepository, IEventAggregator eventPublisher, IAsyncWorker asyncWorker, bool isFromDrop, IStudioResourceRepository studioResourceRepository)
     : base(activityType, environmentRepository, eventPublisher, asyncWorker, isFromDrop, studioResourceRepository, new Mock<IConnectControlSingleton>().Object)
 {
 }
 public DeployNavigationViewModel(IEventAggregator eventPublisher, IAsyncWorker asyncWorker, IEnvironmentRepository environmentRepository, IStudioResourceRepository studioResourceRepository, bool target, IConnectControlSingleton connectControlSingleton)
     : base(eventPublisher, asyncWorker, environmentRepository, studioResourceRepository)
 {
     _target = target;
     ConnectControlSingleton = connectControlSingleton;
 }
 public TestResourcePickerDialog(enDsfActivityType activityType, IEnvironmentRepository environmentRepository, IEventAggregator eventPublisher, IAsyncWorker asyncWorker, bool isFromDrop, IStudioResourceRepository studioResourceRepository)
     : base(activityType, environmentRepository, eventPublisher, asyncWorker, isFromDrop, studioResourceRepository, new Mock <IConnectControlSingleton>().Object)
 {
 }