Пример #1
0
        public ProjectExplorerViewModel(
            IProjectManager projectManager,
            ILoggerService loggerService,
            IMessageService messageService,
            ICommandManager commandManager,
            IProjectRefresherSelector refresherSelector
            ) : base(ToolTitle)
        {
            Argument.IsNotNull(() => projectManager);
            Argument.IsNotNull(() => messageService);
            Argument.IsNotNull(() => loggerService);
            Argument.IsNotNull(() => commandManager);
            Argument.IsNotNull(() => refresherSelector);

            _projectManager    = projectManager;
            _loggerService     = loggerService;
            _messageService    = messageService;
            _commandManager    = commandManager;
            _refresherSelector = refresherSelector;
            if (_refresherSelector is MyProjectRefresherSelector myrefresher)
            {
                myrefresher.ProjectRefresherUpdatedAsync += OnProjectRefresherUpdatedAsync;
            }

            SetupCommands();
            SetupToolDefaults();

            _flatNodeDictionary    = new ConcurrentDictionary <ulong, FileSystemInfoModel>();
            Treenodes              = new BindingList <FileSystemInfoModel>();
            Treenodes.ListChanged += new ListChangedEventHandler(Treenodes_ListChanged);
        }
        public ProjectManager(IProjectValidator projectValidator, IProjectUpgrader projectUpgrader, IProjectRefresherSelector projectRefresherSelector,
                              IProjectSerializerSelector projectSerializerSelector, IProjectInitializer projectInitializer, IProjectManagementConfigurationService projectManagementConfigurationService,
                              IProjectManagementInitializationService projectManagementInitializationService, IProjectStateService projectStateService)
        {
            Argument.IsNotNull(() => projectValidator);
            Argument.IsNotNull(() => projectUpgrader);
            Argument.IsNotNull(() => projectRefresherSelector);
            Argument.IsNotNull(() => projectSerializerSelector);
            Argument.IsNotNull(() => projectInitializer);
            Argument.IsNotNull(() => projectManagementConfigurationService);
            Argument.IsNotNull(() => projectManagementInitializationService);
            Argument.IsNotNull(() => projectStateService);

            _projectValidator          = projectValidator;
            _projectUpgrader           = projectUpgrader;
            _projectRefresherSelector  = projectRefresherSelector;
            _projectSerializerSelector = projectSerializerSelector;
            _projectInitializer        = projectInitializer;
            _projectManagementInitializationService = projectManagementInitializationService;
            _projectStateSetter = (IProjectStateSetter)projectStateService;

            _projects          = new ListDictionary <string, IProject>();
            _projectRefreshers = new ConcurrentDictionary <string, IProjectRefresher>();

            ProjectManagementType = projectManagementConfigurationService.GetProjectManagementType();
        }