Example #1
0
        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);
            }
        }
Example #3
0
        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);
        }