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(); }