public void EngineSchemaProvider_Should_StoreValue()
        {
            var testValue = "test test test";

            var rulesConfigurationValuesMock = MockRepository.Create <IRulesEngineConfigurationValues>();

            rulesConfigurationValuesMock.SetupGet(x => x.RuleEngineResultsSchema).Returns(testValue);

            var engineSchemaProvider = new EngineSchemaProvider(rulesConfigurationValuesMock.Object);

            var result = engineSchemaProvider.Value;

            result.ShouldEqual(testValue);
        }
Пример #2
0
        protected void AddAppServicesToContainer(Container container)
        {
            // Web Portal
            // scoped
            container.Register <IAnnouncementService, AnnouncementService>(Lifestyle.Scoped);
            container.Register <IAppUserService, AppUserService>(Lifestyle.Scoped);
            container.RegisterInstance <IConfigurationValues>(new AppSettingsFileConfigurationValues());
            container.Register <IEdOrgService, EdOrgService>(Lifestyle.Scoped);
            container.Register <IHttpContextProvider, HttpContextProvider>(Lifestyle.Scoped);
            container.Register <ISchoolYearService, SchoolYearService>(Lifestyle.Scoped);
            container.Register <IValidationResultsService, ValidationResultsService>(Lifestyle.Scoped);
            container.Register <ISubmissionCycleService, SubmissionCycleService>(Lifestyle.Scoped);
            container.Register <IEdFiApiLogService, EdFiApiLogService>(Lifestyle.Scoped);
            container.Register <IRecordsRequestService, RecordsRequestService>(Lifestyle.Scoped);
            container.Register <IOdsConfigurationValues, OdsConfigurationValues>(Lifestyle.Singleton);
            container.Register <IDynamicReportingService, DynamicReportingService>(Lifestyle.Scoped);
            container.Register <IManualRuleExecutionService, ManualRuleExecutionService>(Lifestyle.Scoped);

            // singletons
            container.Register <ICacheManager, CacheManager>(Lifestyle.Singleton);
            container.Register <IRulesEngineConfigurationValues, RulesEngineConfigurationValues>(Lifestyle.Singleton);

            container.Register <IRuleDefinitionService, RuleDefinitionService>(Lifestyle.Singleton);
            container.Register <IDbContextFactory <ValidationPortalDbContext>, DbContextFactory <ValidationPortalDbContext> >(Lifestyle.Singleton);
            container.Register <IDbContextFactory <EdFiLogDbContext>, DbContextFactory <EdFiLogDbContext> >(Lifestyle.Singleton);
            container.Register <ISchoolYearDbContextFactory, SchoolYearDbContextFactory>(Lifestyle.Singleton);

            // Rules Engine
            container.Register <ISchemaProvider, EngineSchemaProvider>(Lifestyle.Scoped);
            container.Register <IRulesEngineService, RulesEngineService>(Lifestyle.Scoped);

            var rulesEngineConfigurationValues = new RulesEngineConfigurationValues();
            var asConfiguredRulesDirectory     = rulesEngineConfigurationValues.RulesFileFolder;

            if (asConfiguredRulesDirectory.StartsWith("~"))
            {
                rulesEngineConfigurationValues.RulesFileFolder = Server.MapPath(asConfiguredRulesDirectory);
            }

            var configuredSqlRulesDirectory = rulesEngineConfigurationValues.SqlRulesFileFolder;

            if (configuredSqlRulesDirectory.StartsWith("~"))
            {
                rulesEngineConfigurationValues.SqlRulesFileFolder = Server.MapPath(configuredSqlRulesDirectory);
            }

            var engineSchemaProvider = new EngineSchemaProvider(rulesEngineConfigurationValues);

            Func <Model> modelCreatorDelegate =
                () => new ModelBuilder(
                    new DirectoryRulesStreams(rulesEngineConfigurationValues.RulesFileFolder).Streams)
                .Build(null, engineSchemaProvider);

            container.Register(modelCreatorDelegate, Lifestyle.Scoped);
            container.Register <IOdsDataService, OdsDataService>(Lifestyle.Scoped);

            // Utility
            var loggerObj = LogManager.GetLogger(LoggerName);

            container.RegisterInstance(loggerObj);
            container.Register <ILoggingService, LoggingService>(Lifestyle.Singleton);
        }