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 ILifetimeScope GetChildLifeTimeScope(JobContextMessage jobContextMessage) { return(_parentLifeTimeScope.BeginLifetimeScope(c => { c.RegisterInstance(jobContextMessage).As <IJobContextMessage>(); var azureBlobStorageOptions = _parentLifeTimeScope.Resolve <IAzureStorageOptions>(); c.RegisterInstance(new AzureStorageKeyValuePersistenceConfig( azureBlobStorageOptions.AzureBlobConnectionString, jobContextMessage.KeyValuePairs[ILRContextKeys.Container].ToString())) .As <IAzureStorageKeyValuePersistenceServiceConfig>(); switch (jobContextMessage.KeyValuePairs["CollectionName"].ToString()) { case CollectionConstants.IlrCollectionName: c.RegisterModule <DataModule>(); break; case CollectionConstants.EasCollectionName: IServiceFabricConfigurationService serviceFabricConfigurationService = new ServiceFabricConfigurationService(); var databaseConfiguration = serviceFabricConfigurationService.GetConfigSectionAs <DatabaseConfiguration>("DatabaseConfiguration"); c.RegisterModule(new EasDataModule(databaseConfiguration)); break; } })); }
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); }
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); }
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); }
/// <summary> /// This is the entry point of the service host process. /// </summary> private static void Main() { try { IServiceFabricConfigurationService serviceFabricConfigurationService = new ServiceFabricConfigurationService(); // License Aspose.Cells SoftwareLicenceSection softwareLicenceSection = serviceFabricConfigurationService.GetConfigSectionAs <SoftwareLicenceSection>(nameof(SoftwareLicenceSection)); if (!string.IsNullOrEmpty(softwareLicenceSection.AsposeLicence)) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(softwareLicenceSection.AsposeLicence.Replace("<", "<").Replace(">", ">")))) { new Aspose.Cells.License().SetLicense(ms); } } // Setup Autofac ContainerBuilder builder = ESFA.DC.DataMatch.ReportService.Core.DIComposition.BuildNewContainer(); ConfigurationRootModel configurationRoot = DICompositionServiceFabric.BuildContainer(builder, serviceFabricConfigurationService); ESFA.DC.DataMatch.ReportService.Core.DIComposition.BuildContainer(builder, configurationRoot); ESFA.DC.DataMatch.ReportService.Core.DIComposition.BuildStorageContainerAzure(builder, configurationRoot.azureBlobStorageOptions); // Register the Autofac magic for Service Fabric support. builder.RegisterServiceFabricSupport(); // Register the stateless service. builder.RegisterStatelessService <ServiceFabric.Common.Stateless>("ESFA.DC.DataMatch.ReportService.StatelessType"); using (var container = builder.Build()) { ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ServiceFabric.Common.Stateless).Name); // Prevents this host process from terminating so services keep running. Thread.Sleep(Timeout.Infinite); } } catch (Exception e) { ServiceEventSource.Current.ServiceHostInitializationFailed(e + Environment.NewLine + (e.InnerException?.ToString() ?? "No inner exception")); throw; } }
/// <summary> /// This is the entry point of the service host process. /// </summary> private static void Main() { try { IServiceFabricConfigurationService serviceFabricConfigurationService = new ServiceFabricConfigurationService(); // License Aspose.Cells SoftwareLicenceSection softwareLicenceSection = serviceFabricConfigurationService.GetConfigSectionAs <SoftwareLicenceSection>(nameof(SoftwareLicenceSection)); // Setup Autofac ContainerBuilder builder = DIComposition.BuildContainer(); // Register the Autofac magic for Service Fabric support. builder.RegisterServiceFabricSupport(); // Register the stateless service. builder.RegisterStatelessService <ServiceFabric.Common.Stateless>("ESFA.DC.Operations.Reports.StatelessType"); using (var container = builder.Build()) { var excelFileService = container.Resolve <IExcelFileService>(); if (!string.IsNullOrEmpty(softwareLicenceSection.AsposeLicence)) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(softwareLicenceSection.AsposeLicence.Replace("<", "<").Replace(">", ">")))) { excelFileService.ApplyLicense(ms); } } ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(ServiceFabric.Common.Stateless).Name); // Prevents this host process from terminating so services keep running. Thread.Sleep(Timeout.Infinite); } } catch (Exception e) { ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString()); throw; } }
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); }
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> >(); }
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); }