public static Factory SetupDefault(this Factory factory, ProjectManagementType projectManagementType = ProjectManagementType.SingleDocument) { Argument.IsNotNull(() => factory); SetupRegistrations(factory, projectManagementType); SetupBehavior(factory); return(factory); }
protected virtual void Initialize(IProjectManager projectManager, ProjectManagementType projectManagementType) { var serviceLocator = ServiceLocator; switch (projectManagementType) { case ProjectManagementType.SingleDocument: // Note: don't register and instantiate because IProjectManager is not yet registered here var closeBeforeLoadProjectWatcher = new CloseBeforeLoadProjectWatcher(projectManager); serviceLocator.RegisterInstance(closeBeforeLoadProjectWatcher); break; case ProjectManagementType.MultipleDocuments: // Note: don't register and instantiate because IProjectManager is not yet registered here var activationHistoryProjectWatcher = _typeFactory.CreateInstanceWithParametersAndAutoCompletion <ActivationHistoryProjectWatcher>(projectManager); serviceLocator.RegisterInstance(activationHistoryProjectWatcher); break; default: throw new ArgumentOutOfRangeException("projectManagementType", projectManagementType, null); } }
private static void SetupRegistrations(Factory factory, ProjectManagementType projectManagementType) { Argument.IsNotNull(() => factory); switch (projectManagementType) { case ProjectManagementType.SingleDocument: factory.ServiceLocator.RegisterType <IProjectManagementConfigurationService, SdiProjectManagementConfigurationService>(); break; case ProjectManagementType.MultipleDocuments: factory.ServiceLocator.RegisterType <IProjectManagementConfigurationService, MdiProjectManagementConfigurationService>(); break; default: throw new ArgumentOutOfRangeException("projectManagementType", projectManagementType, null); } // Why mock all these services?? factory.MockAndRegisterIfNotRegistered <IProjectReader, MemoryProjectReader>(); factory.MockAndRegisterIfNotRegistered <IProjectWriter, MemoryProjectWriter>(); factory.MockAndRegisterIfNotRegistered <IProjectSerializerSelector, DefaultProjectSerializerSelector>(factory.ServiceLocator); factory.ServiceLocator.RegisterType <IProjectValidator, EmptyProjectValidator>(); factory.MockAndRegisterIfNotRegistered <IProjectRefresher>(); factory.MockAndRegisterIfNotRegistered <IProjectRefresherSelector>(); factory.ServiceLocator.RegisterType <IProjectManagementInitializationService, ProjectManagementInitializationService>(); factory.ServiceLocator.RegisterType <IProjectInitializer, EmptyProjectInitializer>(); factory.ServiceLocator.RegisterType <IProjectManager, ProjectManager>(); //var projectManager = factory.ServiceLocator.ResolveType<IProjectManager>() as ProjectManager; //factory.ServiceLocator.RegisterInstance<ProjectManager>(projectManager); }