示例#1
0
        protected override void Load(ContainerBuilder containerBuilder)
        {
            var serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration        = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");

            containerBuilder.RegisterModule(new StatelessServiceModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration));

            containerBuilder.RegisterModule <BaseModule>();
            containerBuilder.RegisterModule <CondenserModule>();
            containerBuilder.RegisterModule <DataCacheModule>();
            containerBuilder.RegisterModule <ProviderModule>();
            containerBuilder.RegisterModule <SerializationModule>();
            containerBuilder.RegisterModule <StatelessActorModule>();

            // register MessageHandler
            containerBuilder.RegisterType <MessageHandler>().As <IMessageHandler <JobContextMessage> >().InstancePerLifetimeScope();
            containerBuilder.RegisterType <DefaultJobContextMessageMapper <JobContextMessage> >().As <IMapper <JobContextMessage, JobContextMessage> >().InstancePerLifetimeScope();

            containerBuilder.RegisterType <DateTimeProvider.DateTimeProvider>().As <IDateTimeProvider>();

            containerBuilder.RegisterType <FundingServiceContext>().As <IFundingServiceContext>().InstancePerLifetimeScope();
            containerBuilder.RegisterType <FundingOrchestrationService>().As <IFundingOrchestrationService>();
        }
        public static ContainerBuilder BuildContainer()
        {
            var containerBuilder = new ContainerBuilder();

            IServiceFabricConfigurationService serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var reportServiceConfiguration    = serviceFabricConfigurationService.GetConfigSectionAs <ReportServiceConfiguration>("ReportServiceConfiguration");

            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");
            var ioConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <IOConfiguration>("IOConfiguration");

            containerBuilder.RegisterModule(new StatelessBaseModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration, ioConfiguration));
            containerBuilder.RegisterModule(new DataModule(reportServiceConfiguration));
            containerBuilder.RegisterModule <ReportsServiceModule>();
            containerBuilder.RegisterModule <CollectionTypeFormattersModule>();
            containerBuilder.RegisterModule <ReportsModule>();

            return(containerBuilder);
        }
示例#3
0
        private static ContainerBuilder BuildContainerBuilder()
        {
            var containerBuilder = new ContainerBuilder();

            var serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();

            // get ServiceBus, Azurestorage config values and register container
            var serviceBusOptions = serviceFabricConfigurationService.GetConfigSectionAs <ServiceBusConfig>("StatelessServiceConfiguration");

            containerBuilder.RegisterInstance(serviceBusOptions).As <IServiceBusConfig>().SingleInstance();

            var topicSubscribeConfig = new TopicConfiguration(
                serviceBusOptions.ServiceBusConnectionString,
                serviceBusOptions.TopicName,
                serviceBusOptions.SubscriptionName,
                1,
                maximumCallbackTimeSpan: TimeSpan.FromMinutes(60));

            containerBuilder.Register(c =>
            {
                var topicSubscriptionSevice =
                    new TopicSubscriptionSevice <JobContextMessage>(
                        topicSubscribeConfig,
                        c.Resolve <ISerializationService>(),
                        c.Resolve <ILogger>());
                return(topicSubscriptionSevice);
            }).As <ITopicSubscriptionService <JobContextMessage> >();

            containerBuilder.RegisterModule(new StatelessServiceModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule <SerializationModule>();
            containerBuilder.RegisterType <JobContextMessageHandler>().As <IMessageHandler <JobContextMessage> >();

            var summarisationDataOptions = serviceFabricConfigurationService.GetConfigSectionAs <SummarisationDataOptions>("ReferenceDataSection");

            containerBuilder.RegisterModule(new SummarisationModule(summarisationDataOptions));

            return(containerBuilder);
        }
示例#4
0
        protected override void Load(ContainerBuilder containerBuilder)
        {
            var serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration        = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");
            var ioConfiguration      = serviceFabricConfigurationService.GetConfigSectionAs <IOConfiguration>("IOConfiguration");
            var referenceDataOptions = serviceFabricConfigurationService.GetConfigSectionAs <ReferenceDataOptions>("ReferenceDataSection");
            var desktopRefDataConfig = serviceFabricConfigurationService.GetConfigSectionAs <DesktopReferenceDataConfiguration>("DesktopReferenceDataSection");

            containerBuilder.RegisterInstance(desktopRefDataConfig).As <IDesktopReferenceDataConfiguration>();

            var featureConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <FeatureConfiguration>("FeatureConfiguration");

            containerBuilder.RegisterInstance(featureConfiguration).As <FeatureConfiguration>().SingleInstance();

            var apiSettings = serviceFabricConfigurationService.GetConfigSectionAs <ApiSettings>("ApiSettings");

            containerBuilder.RegisterInstance(apiSettings).As <ApiSettings>().SingleInstance();

            containerBuilder.Register(c =>
            {
                var jitter = new Random();

                return(Policy.Handle <Exception>()
                       .WaitAndRetryAsync(3, retryAttempt =>
                                          TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))
                                          + TimeSpan.FromMilliseconds(jitter.Next(0, 100))));
            }).As <IAsyncPolicy>().SingleInstance();

            containerBuilder.RegisterModule <BaseModule>();
            containerBuilder.RegisterModule(new StatelessServiceModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration, ioConfiguration));
            containerBuilder.RegisterModule(new RepositoryModule(referenceDataOptions));
            containerBuilder.RegisterModule <SerializationModule>();
            containerBuilder.RegisterModule <ReferenceDataRepositoryServicesModule>();
            containerBuilder.RegisterType <DateTimeProvider.DateTimeProvider>().As <IDateTimeProvider>();
            containerBuilder.RegisterType <MessageHandler>().As <IMessageHandler <JobContextMessage> >();
        }
示例#5
0
        private static ContainerBuilder BuildContainerBuilder()
        {
            var containerBuilder = new ContainerBuilder();

            var serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration        = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");
            var ioConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <IOConfiguration>("IOConfiguration");

            containerBuilder.RegisterModule(new StatelessServiceModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule <SerializationModule>();

            containerBuilder.RegisterModule <FileValidationOrchestrationServicesModule>();
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration, ioConfiguration));
            containerBuilder.RegisterModule <ValidatorModule>();
            containerBuilder.RegisterModule <MapperModule>();

            containerBuilder.RegisterType <MessageHandler>().As <IMessageHandler <JobContextMessage> >();

            return(containerBuilder);
        }
示例#6
0
        private static ContainerBuilder BuildContainer()
        {
            var configHelper     = new ConfigurationHelper();
            var containerBuilder = new ContainerBuilder();

            var serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration        = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");

            containerBuilder.RegisterModule(new StatelessServiceModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule <SerializationModule>();

            containerBuilder.RegisterModule <PreValidationServiceModule>();
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration));

            containerBuilder.RegisterType <DefaultJobContextMessageMapper <JobContextMessage> >().As <IMapper <JobContextMessage, JobContextMessage> >();
            containerBuilder.RegisterType <MessageHandler>().As <IMessageHandler <JobContextMessage> >();
            containerBuilder.RegisterType <JobContextMessageValidationContextFactory>().As <IValidationContextFactory <IJobContextMessage> >();

            containerBuilder.RegisterType <JobContextManager <JobContextMessage> >().As <IJobContextManager <JobContextMessage> >().InstancePerLifetimeScope();

            return(containerBuilder);
        }
示例#7
0
        public static ContainerBuilder BuildContainer()
        {
            var containerBuilder = new ContainerBuilder();

            IServiceFabricConfigurationService serviceFabricConfigurationService = new ServiceFabricConfigurationService();

            var statelessServiceConfiguration        = serviceFabricConfigurationService.GetConfigSectionAsStatelessServiceConfiguration();
            var reportServiceConfiguration           = serviceFabricConfigurationService.GetConfigSectionAs <ReportServiceConfiguration>("ReportServiceConfiguration");
            var azureStorageFileServiceConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <AzureStorageFileServiceConfiguration>("AzureStorageFileServiceConfiguration");

            containerBuilder.RegisterType <ILR2021_DataStoreEntities>().As <IIlr2021Context>();
            containerBuilder.RegisterType <ILR1920_DataStoreEntities>().As <IIlr1920RulebaseContext>();
            containerBuilder.RegisterType <ILR1819_DataStoreEntities>().As <IIlr1819RulebaseContext>();
            containerBuilder.RegisterType <PimsContext>().As <IPimsContext>();
            containerBuilder.RegisterType <FundingClaimsDataContext>().As <IFundingClaimsDataContext>().ExternallyOwned();
            containerBuilder.RegisterInstance(reportServiceConfiguration).As <IReportServiceConfiguration>();

            containerBuilder.Register(context =>
            {
                var optionsBuilder = new DbContextOptionsBuilder <ILR1819_DataStoreEntities>();
                optionsBuilder.UseSqlServer(
                    reportServiceConfiguration.IlrDataStore1819ConnectionString,
                    options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>()));

                return(optionsBuilder.Options);
            })
            .As <DbContextOptions <ILR1819_DataStoreEntities> >()
            .SingleInstance();

            containerBuilder.Register(context =>
            {
                var optionsBuilder = new DbContextOptionsBuilder <ILR1920_DataStoreEntities>();
                optionsBuilder.UseSqlServer(
                    reportServiceConfiguration.IlrDataStore1920ConnectionString,
                    options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>()));

                return(optionsBuilder.Options);
            })
            .As <DbContextOptions <ILR1920_DataStoreEntities> >()
            .SingleInstance();

            containerBuilder.Register(context =>
            {
                var optionsBuilder = new DbContextOptionsBuilder <ILR2021_DataStoreEntities>();
                optionsBuilder.UseSqlServer(
                    reportServiceConfiguration.IlrDataStore2021ConnectionString,
                    options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>()));

                return(optionsBuilder.Options);
            })
            .As <DbContextOptions <ILR2021_DataStoreEntities> >()
            .SingleInstance();

            containerBuilder.Register(context =>
            {
                var optionsBuilder = new DbContextOptionsBuilder <PimsContext>();
                optionsBuilder.UseSqlServer(
                    reportServiceConfiguration.PimsDataConnectionString,
                    options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>()));

                return(optionsBuilder.Options);
            })
            .As <DbContextOptions <PimsContext> >()
            .SingleInstance();

            containerBuilder.Register(context =>
            {
                var optionsBuilder = new DbContextOptionsBuilder <FundingClaimsDataContext>();
                optionsBuilder.UseSqlServer(
                    reportServiceConfiguration.FundingClaimsConnectionString,
                    options => options.EnableRetryOnFailure(3, TimeSpan.FromSeconds(3), new List <int>()));

                return(optionsBuilder.Options);
            })
            .As <DbContextOptions <FundingClaimsDataContext> >()
            .SingleInstance();

            containerBuilder.RegisterModule(new StatelessBaseModule(statelessServiceConfiguration));
            containerBuilder.RegisterModule <SerializationModule>();
            containerBuilder.RegisterModule(new IOModule(azureStorageFileServiceConfiguration));
            containerBuilder.RegisterModule <ReportsServiceModule>();
            containerBuilder.RegisterModule <ReportsModule>();

            return(containerBuilder);
        }