Esempio n. 1
0
        private static void RegisterBus(ContainerBuilder builder)
        {
            var helper = new ParameterBusHelper();

            BusConfigurator.ConfigureBus(builder, MonitoredServices.VecteurService,
                                         (cfg, ctx) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg); });
        }
Esempio n. 2
0
        private void StartBus()
        {
            var helper           = new ParameterBusHelper();
            var containerBuilder = new ContainerBuilder();

            BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.CacheService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(BusConstants.CacheDoesExistRequestQueue,
                                    ec => { ec.Consumer(() => new DoesExistInCacheRequestConsumer()); });

                cfg.ReceiveEndpoint(BusConstants.CacheConnectionInfoRequestQueue,
                                    ec => { ec.Consumer(() => new CacheConnectionInfoRequestConsumer()); });

                cfg.ReceiveEndpoint(BusConstants.CacheDeleteFile, ec =>
                {
                    ec.Consumer(() => new DeleteFileFromCacheConsumer());
                    ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy);
                });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });

            var container = containerBuilder.Build();

            Bus = container.Resolve <IBusControl>();
            Bus.Start();
        }
        private void StartBus()
        {
            var helper = new ParameterBusHelper();

            Bus = BusConfigurator.ConfigureBus(MonitoredServices.VecteurService,
                                               (cfg, host) => { helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host); });
            Bus.Start();
        }
        /// <summary>
        ///     Starts the Index Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Index service is starting");

            // Configure Bus
            var helper = new ParameterBusHelper();

            bus = BusConfigurator.ConfigureBus(MonitoredServices.IndexService, (cfg, host) =>
            {
                cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <UpdateArchiveRecordConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerRemoveArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <RemoveArchiveRecordConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerFindArchiveRecordMessageQueue,
                                    ec => { ec.Consumer(() => kernel.Get <FindArchiveRecordConsumer>()); });
                cfg.ReceiveEndpoint(string.Format(BusConstants.IndexManagagerRequestBase, nameof(GetArchiveRecordsForPackageRequest)),
                                    ec =>
                {
                    ec.Consumer(() =>
                                kernel.Get <SimpleConsumer <GetArchiveRecordsForPackageRequest, GetArchiveRecordsForPackageResponse, IIndexManager> >());
                });

                cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateIndivTokensMessageQueue,
                                    ec => { ec.Consumer(() => kernel.Get <UpdateIndivTokensConsumer>()); });
                cfg.ReceiveEndpoint(BusConstants.MonitoringElasticSearchTestQueue,
                                    ec => { ec.Consumer(() => kernel.Get <TestElasticSearchRequestConsumer>()); });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerGetElasticLogRecordsRequestQueue,
                                    ec =>
                {
                    ec.Consumer(() =>
                                kernel.Get <SimpleConsumer <GetElasticLogRecordsRequest, GetElasticLogRecordsResponse, IElasticLogManager> >());
                });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);
                cfg.UseSerilog();
            });

            // Add the bus instance to the IoC container
            kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IParameterHelper>().To <ParameterHelper>();
            bus.Start();

            var elasticLogManager = kernel.Get <IElasticLogManager>();

            deleteOldLogIndexesTimer = new Timer(t => elasticLogManager.DeleteOldLogIndexes(), null, TimeSpan.Zero, TimeSpan.FromDays(1));

            Log.Information("Index service started");
        }
        public static void RegisterBus(this ContainerBuilder builder)
        {
            // Configure Bus
            var helper = new ParameterBusHelper();

            BusConfigurator.ConfigureBus(builder, MonitoredServices.NotMonitored, (cfg, ctx) =>
            {
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });
        }
        private void InitBus()
        {
            var helper = new ParameterBusHelper();

            bus = BusConfigurator.ConfigureBus(MonitoredServices.OnboardingService, (cfg, host) =>
            {
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);

                cfg.UseSerilog();
            });

            bus.Start();

            // Add the bus instance to the IoC container
            Startup.Kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
        }
        /// <summary>
        ///     Starts the Index Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Index service is starting");

            // Configure Bus
            var helper = new ParameterBusHelper();
            BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.IndexService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve<UpdateArchiveRecordConsumer>);
                    ec.UseRetry(retryPolicy =>
                        retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerRemoveArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve<RemoveArchiveRecordConsumer>);
                    ec.UseRetry(retryPolicy =>
                        retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerFindArchiveRecordMessageQueue,
                    ec => { ec.Consumer(ctx.Resolve<FindArchiveRecordConsumer>); });
                cfg.ReceiveEndpoint(string.Format(BusConstants.IndexManagagerRequestBase, nameof(GetArchiveRecordsForPackageRequest)),
                    ec =>
                    {
                        ec.Consumer(ctx.Resolve<IConsumer<GetArchiveRecordsForPackageRequest>>);
                    });

                cfg.ReceiveEndpoint(BusConstants.IndexManagerUpdateIndivTokensMessageQueue,
                    ec => { ec.Consumer(ctx.Resolve<UpdateIndivTokensConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.MonitoringElasticSearchTestQueue,
                    ec => { ec.Consumer(ctx.Resolve<TestElasticSearchRequestConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.IndexManagerGetElasticLogRecordsRequestQueue,
                    ec => {  ec.Consumer(ctx.Resolve<IConsumer<GetElasticLogRecordsRequest>>); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });

            var container = containerBuilder.Build();
            bus = container.Resolve<IBusControl>();
            bus.Start();
            
            var elasticLogManager = container.Resolve<IElasticLogManager>();
            deleteOldLogIndexesTimer = new Timer(t => elasticLogManager.DeleteOldLogIndexes(), null, TimeSpan.Zero, TimeSpan.FromDays(1));

            Log.Information("Index service started");
        }
Esempio n. 8
0
        /// <summary>
        ///     Starts the Repository Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Repository service is starting");

            // Configure Bus
            var helper = new ParameterBusHelper();

            bus = BusConfigurator.ConfigureBus(MonitoredServices.RepositoryService, (cfg, host) =>
            {
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerDownloadPackageMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <DownloadPackageConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerArchiveRecordAppendPackageMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <AppendPackageConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerReadPackageMetadataMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <ReadPackageMetadataConsumer>());
                    ec.UseRetry(retryPolicy => retryPolicy.Exponential(3, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.MonitoringDirCheckQueue, ec => { ec.Consumer(() => kernel.Get <CheckDirConsumer>()); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);
                cfg.UseSerilog();
            });

            // Add the bus instance to the IoC container
            kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IRequestClient <GetArchiveRecordsForPackageRequest, GetArchiveRecordsForPackageResponse> >()
            .ToMethod(GetArchiveRecordsForPackageRequestClientCallback);

            bus.Start();

            Log.Information("Repository service started");
        }
Esempio n. 9
0
        public static void Configure(IKernel kernel)
        {
            // Configure Bus
            var helper = new ParameterBusHelper();

            bus = BusConfigurator.ConfigureBus(MonitoredServices.NotMonitored, (cfg, host) =>
            {
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);

                cfg.UseSerilog();
            });

            kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope();

            bus.Start();

            Log.Information("CMI.Web.Frontend bus service started");
        }
Esempio n. 10
0
        public static void RegisterBus(this ContainerBuilder builder)
        {
            var helper = new ParameterBusHelper();

            // Configure Bus
            BusConfigurator.ConfigureBus(builder, MonitoredServices.NotMonitored, (cfg, ctx) =>
            {
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
                cfg.ReceiveEndpoint(BusConstants.ManagementApiAbbyyProgressEventQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <AbbyyProgressEventConsumer>);
                });
                cfg.ReceiveEndpoint(BusConstants.ManagementApiDocumentConverterServiceStartedQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <DocumentConverterServiceStartedEventConsumer>);
                });
            });
            builder.Register(c => CreateFindArchiveRecordRequestClient()).As <IRequestClient <FindArchiveRecordRequest> >();
        }
        /// <summary>
        ///     Starts the Repository Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Repository service is starting");

            // Configure Bus
            var helper = new ParameterBusHelper();

            BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.RepositoryService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerDownloadPackageMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <DownloadPackageConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerArchiveRecordAppendPackageMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <AppendPackageConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });
                cfg.ReceiveEndpoint(BusConstants.RepositoryManagerReadPackageMetadataMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ReadPackageMetadataConsumer>);
                    ec.UseRetry(retryPolicy => retryPolicy.Exponential(3, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.MonitoringDirCheckQueue, ec => { ec.Consumer(ctx.Resolve <CheckDirConsumer>); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });

            containerBuilder.Register(GetArchiveRecordsForPackageRequestClientCallback);
            var container = containerBuilder.Build();

            bus = container.Resolve <IBusControl>();
            bus.Start();

            Log.Information("Repository service started");
        }
Esempio n. 12
0
        public void Start()
        {
            ParameterBus = BusConfigurator.ConfigureBus((cfg, host) =>
            {
                cfg.ReceiveEndpoint(host, "GetAllParametersA", ep =>
                {
                    ep.Handler <GetParameterEvent>(context =>
                    {
                        ParameterBusHelper.SubscribeGetEvent <ExampleSettingA>(ParameterBus);
                        return(Console.Out.WriteLineAsync("Get Parameters"));
                    });
                });
                cfg.ReceiveEndpoint(host, "SaveParametersA", ep =>
                {
                    ep.Handler <SaveParameterEvent>(context =>
                    {
                        ParameterBusHelper.SubscribeSaveEvent <ExampleSettingA>(ParameterBus, context.Message.Parameter);
                        return(Console.Out.WriteLineAsync("Saved Parameter"));
                    });
                });
            });

            ParameterBus.Start();
        }
Esempio n. 13
0
        /// <summary>
        ///     Starts the Harvest Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Harvest service is starting");

            // Configure Bus
            bus = BusConfigurator.ConfigureBus(MonitoredServices.HarvestService, (cfg, host) =>
            {
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerSyncArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <SyncArchiveRecordConsumer>());
                    // Retry for a maximum of 10 times with the following intervals
                    // 00:00:6      minInterval + 1 * intervalDelta
                    // 00:00:11     minInterval + 2 * intervalDelta
                    // 00:00:21     minInterval + 4 * intervalDelta
                    // 00:00:41     minInterval + 8 * intervalDelta
                    // 00:01:21     minInterval + 16 * intervalDelta
                    // 00:02:41     minInterval + 32 * intervalDelta
                    // 00:05:00     maxInterval
                    // 00:05:00
                    // 00:05:00
                    // 00:05:00
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordUpdatedEventQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <ArchiveRecordUpdatedConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordRemovedEventQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <ArchiveRecordRemovedConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerResyncArchiveDatabaseMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <ArchiveDatabaseResyncConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestStatusInfoRequestQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <HarvestStatusInfoConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestLogInfoRequestQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <HarvestLogInfoConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.MonitoringAisDbCheckQueue, ec => { ec.Consumer(() => kernel.Get <CheckAisDbConsumer>()); });

                cfg.UseSerilog();

                // Wire up the parameter manager
                var helper = new ParameterBusHelper();
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);
            });

            // Add the bus instance to the IoC container
            kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IRequestClient <FindArchiveRecordRequest, FindArchiveRecordResponse> >()
            .ToMethod(CreateFindArchiveRecordRequestClient);
            bus.Start();

            Log.Information("Harvest service started");
        }
        /// <summary>
        ///     Starts the Harvest Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Harvest service is starting");

            // Configure Bus
            BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.HarvestService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerSyncArchiveRecordMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <SyncArchiveRecordConsumer>);
                    // Retry for a maximum of 10 times with the following intervals
                    // 00:00:6      minInterval + 1 * intervalDelta
                    // 00:00:11     minInterval + 2 * intervalDelta
                    // 00:00:21     minInterval + 4 * intervalDelta
                    // 00:00:41     minInterval + 8 * intervalDelta
                    // 00:01:21     minInterval + 16 * intervalDelta
                    // 00:02:41     minInterval + 32 * intervalDelta
                    // 00:05:00     maxInterval
                    // 00:05:00
                    // 00:05:00
                    // 00:05:00
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordUpdatedEventQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ArchiveRecordUpdatedConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerArchiveRecordRemovedEventQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ArchiveRecordRemovedConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.HarvestManagerResyncArchiveDatabaseMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ArchiveDatabaseResyncConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestStatusInfoRequestQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <HarvestStatusInfoConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });
                cfg.ReceiveEndpoint(BusConstants.ManagementApiGetHarvestLogInfoRequestQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <HarvestLogInfoConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });

                cfg.ReceiveEndpoint(BusConstants.MonitoringAisDbCheckQueue, ec => { ec.Consumer(ctx.Resolve <CheckAisDbConsumer>); });

                // Wire up the parameter manager
                var helper = new ParameterBusHelper();
                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });

            containerBuilder.Register(CreateFindArchiveRecordRequestClient);
            var container = containerBuilder.Build();

            bus = container.Resolve <IBusControl>();
            bus.Start();

            Log.Information("Harvest service started");
        }
Esempio n. 15
0
        /// <summary>
        ///     Starts the Order Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public void Start()
        {
            Log.Information("Order service is starting");

            // Configure Bus
            var helper = new ParameterBusHelper();

            BusConfigurator.ConfigureBus(containerBuilder, MonitoredServices.OrderService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(AddToBasketRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <AddToBasketRequest> >); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerFindOrderItemsRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <FindOrderItemsRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerGetStatusHistoryForOrderItemRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <GetStatusHistoryForOrderItemConsumer>); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetPrimaerdatenReportRecordsRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <GetPrimaerdatenReportRecordsRequest> >); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerFindOrderingHistoryForVeRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <FindOrderHistoryForVeConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerGetOrderingRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <GetOrderingRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerUpdateOrderDetailRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <UpdateOrderDetailRequestConsumer>); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(AddToBasketCustomRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <AddToBasketCustomRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(RemoveFromBasketRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <RemoveFromBasketRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateCommentRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateCommentRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateBenutzungskopieRequest)),
                                    ec =>
                {
                    ec.Consumer(ctx.Resolve <IConsumer <UpdateBenutzungskopieRequest> >);
                });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateBewilligungsDatumRequest)),
                                    ec =>
                {
                    ec.Consumer(ctx.Resolve <IConsumer <UpdateBewilligungsDatumRequest> >);
                });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateReasonRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateReasonRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(OrderCreationRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <CreateOrderFromBasketRequestConsumer>); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetBasketRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <GetBasketRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetOrderingsRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <GetOrderingsRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(IsUniqueVeInBasketRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <IsUniqueVeInBasketRequest> >); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(GetDigipoolRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <GetDigipoolRequest> >); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusAushebungBereitRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <SetStatusAushebungBereitConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusDigitalisierungExternRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <SetStatusDigitalisierungExternConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusDigitalisierungAbgebrochenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <SetStatusDigitalisierungAbgebrochenConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerSetStatusZumReponierenBereitRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <SetStatusZumReponierenBereitConsumer>); });

                cfg.ReceiveEndpoint(string.Format(BusConstants.OrderManagagerRequestBase, nameof(UpdateDigipoolRequest)),
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <UpdateDigipoolRequest> >); });

                cfg.ReceiveEndpoint(BusConstants.EntscheidFreigabeHinterlegenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <EntscheidFreigabeHinterlegenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.EntscheidGesuchHinterlegenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <EntscheidGesuchHinterlegenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.InVorlageExportierenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <InVorlageExportierenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.ReponierenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <SetStatusZumReponierenBereitConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.AbschliessenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AbschliessenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.AbbrechenRequestQueue, ec => { ec.Consumer(ctx.Resolve <AbbrechenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.ZuruecksetzenRequestQueue, ec => { ec.Consumer(ctx.Resolve <ZuruecksetzenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.AuftraegeAusleihenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <AuftraegeAusleihenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.AushebungsauftraegeDruckenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <AushebungsauftraegeDruckenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.RecalcIndivTokens, ec => { ec.Consumer(ctx.Resolve <RecalcIndivTokensConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.DigitalisierungAusloesenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <DigitalisierungAusloesenRequestConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.DigitalisierungsAuftragErledigtEvent, ec =>
                {
                    ec.Consumer(ctx.Resolve <DigitalisierungsAuftragErledigtConsumer>);
                    ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy);
                });
                cfg.ReceiveEndpoint(BusConstants.OrderManagerArchiveRecordUpdatedEventQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ArchiveRecordUpdatedConsumer>);
                    ec.UseRetry(BusConfigurator.ConfigureDefaultRetryPolicy);
                });
                cfg.ReceiveEndpoint(BusConstants.DigitalisierungsAuftragErledigtEventError,
                                    ec => { ec.Consumer(ctx.Resolve <DigitalisierungsAuftragErledigtErrorConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.BenutzungskopieAuftragErledigtEvent, ec =>
                {
                    ec.Consumer(ctx.Resolve <BenutzungskopieAuftragErledigtConsumer>);
                    // Wenn Vecteur meldet, dass Auftrag erledigt ist, kann es sein, dass die Daten eventuell noch nicht in den SFTP hochgeladen wurden.
                    // Der Consumer löst in diesem Fall eine Exception aus. Durch den Retry versuchen wir es noch ein paar mal
#if DEBUG
                    ec.UseRetry(retryPolicy => retryPolicy.Interval(5, TimeSpan.FromSeconds(2)));
#else
                    ec.UseRetry(retryPolicy => retryPolicy.Interval(10, TimeSpan.FromMinutes(30)));
#endif
                });
                cfg.ReceiveEndpoint(BusConstants.BenutzungskopieAuftragErledigtEventError,
                                    ec => { ec.Consumer(ctx.Resolve <BenutzungskopieAuftragErledigtErrorConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.OrderManagerAssetReadyEventQueue, ec => { ec.Consumer(ctx.Resolve <AssetReadyConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.OrderManagerMarkOrderAsFaultedQueue,
                                    ec => { ec.Consumer(ctx.Resolve <IConsumer <MarkOrderAsFaultedRequest> >); });
                cfg.ReceiveEndpoint(BusConstants.OrderManagerResetFaultedOrdersQueue,
                                    ec =>
                {
                    ec.Consumer(ctx.Resolve <IConsumer <ResetAufbereitungsfehlerRequest> >);
                });
                cfg.ReceiveEndpoint(BusConstants.OrderManagerMahnungVersendenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <MahnungVersendenRequestConsumer>); });

                cfg.ReceiveEndpoint(BusConstants.OrderManagerErinnerungVersendenRequestQueue,
                                    ec => { ec.Consumer(ctx.Resolve <ErinnerungVersendenRequestConsumer>); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
            });

            containerBuilder.Register(CreateFindArchiveRecordRequestClient);
            containerBuilder.Register(CreateRegisterPrepareAssetClient);

            var container = containerBuilder.Build();

            bus = container.Resolve <IBusControl>();
            bus.Start();

            recalcTermineListener = new RecalcTermineListener(container.Resolve <IOrderDataAccess>());
            recalcTermineListener.Start();

            Log.Information("Order service started");
        }
Esempio n. 16
0
        /// <summary>
        ///     Starts the Asset Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public async Task Start()
        {
            Log.Information("Asset service is starting");

            EnsurePasswordSeedIsConfigured();
            var helper = new ParameterBusHelper();

            // Configure Bus
            BusConfigurator.ConfigureBus(builder, MonitoredServices.AssetService, (cfg, ctx) =>
            {
                cfg.ReceiveEndpoint(BusConstants.AssetManagerExtractFulltextMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <ExtractFulltextPackageConsumer>);
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerTransformAssetMessageQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <TransformPackageConsumer>);
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerPrepareForRecognition, ec =>
                {
                    ec.Consumer(ctx.Resolve <PrepareForRecognitionConsumer>);
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerPrepareForTransformation, ec =>
                {
                    ec.Consumer(ctx.Resolve <PrepareForTransformationConsumer>);
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.WebApiDownloadAssetRequestQueue, ec => { ec.Consumer(ctx.Resolve <DownloadAssetConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.WebApiGetAssetStatusRequestQueue, ec => { ec.Consumer(ctx.Resolve <GetAssetStatusConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.WebApiPrepareAssetRequestQueue, ec => { ec.Consumer(ctx.Resolve <PrepareAssetConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.AssetManagerAssetReadyEventQueue, ec =>
                {
                    ec.Consumer(ctx.Resolve <AssetReadyConsumer>);
                    // Retry or we have the situation where the job is not marked as terminated in the DB.
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerSchdeduleForPackageSyncMessageQueue, ec => { ec.Consumer(ctx.Resolve <ScheduleForPackageSyncConsumer>); });
                cfg.ReceiveEndpoint(BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue, ec => { ec.Consumer(ctx.Resolve <UpdatePrimaerdatenAuftragStatusConsumer>); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg);
                helper.SubscribeAllSettingsInAssembly(Assembly.GetAssembly(typeof(Engine.Asset.AssetPreparationEngine)), cfg);
            });

            builder.Register(CreateDoesExistInCacheRequestClient);
            builder.Register(CreateJobInitRequestClient);
            builder.Register(CreateSupportedFileTypesRequestClient);
            builder.Register(CreateDocumentConversionRequestClient);
            builder.Register(CreateDocumentExtractionRequestClient);
            builder.Register(CreateFindArchiveRecordRequestClient);

            container = builder.Build();
            scheduler = await SchedulerConfigurator.Configure(container);

            bus = container.Resolve <IBusControl>();
            bus.Start();

            // Start the timer
            Log.Verbose("Starting scheduler");
            await scheduler.Start();

            Log.Information("Asset service started");
        }
Esempio n. 17
0
        /// <summary>
        ///     Starts the Asset Service.
        ///     Called by the service host when the service is started.
        /// </summary>
        public async Task Start()
        {
            Log.Information("Asset service is starting");
            scheduler = await SchedulerConfigurator.Configure(kernel);

            EnsurePasswordSeedIsConfigured();


            // Configure Bus
            var helper = new ParameterBusHelper();

            bus = BusConfigurator.ConfigureBus(MonitoredServices.AssetService, (cfg, host) =>
            {
                cfg.ReceiveEndpoint(BusConstants.AssetManagerExtractFulltextMessageQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <ExtractFulltextPackageConsumer>());
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerTransformAssetMessageQueue,
                                    ec =>
                {
                    ec.Consumer(() => kernel.Get <TransformPackageConsumer>());
                    BusConfigurator.SetPrefetchCountForEndpoint(ec);
                });

                cfg.ReceiveEndpoint(BusConstants.WebApiDownloadAssetRequestQueue, ec => { ec.Consumer(() => kernel.Get <DownloadAssetConsumer>()); });

                cfg.ReceiveEndpoint(BusConstants.WebApiGetAssetStatusRequestQueue,
                                    ec => { ec.Consumer(() => kernel.Get <GetAssetStatusConsumer>()); });

                cfg.ReceiveEndpoint(BusConstants.WebApiPrepareAssetRequestQueue, ec => { ec.Consumer(() => kernel.Get <PrepareAssetConsumer>()); });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerAssetReadyEventQueue, ec =>
                {
                    ec.Consumer(() => kernel.Get <AssetReadyConsumer>());
                    // Retry or we have the situation where the job is not marked as terminated in the DB.
                    ec.UseRetry(retryPolicy =>
                                retryPolicy.Exponential(10, TimeSpan.FromSeconds(1), TimeSpan.FromMinutes(5), TimeSpan.FromSeconds(5)));
                });

                cfg.ReceiveEndpoint(BusConstants.MonitoringAbbyyOcrTestQueue, ec => { ec.Consumer(() => kernel.Get <AbbyyOcrTestConsumer>()); });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerSchdeduleForPackageSyncMessageQueue,
                                    ec => { ec.Consumer(() => kernel.Get <ScheduleForPackageSyncConsumer>()); });

                cfg.ReceiveEndpoint(BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue,
                                    ec => { ec.Consumer(() => kernel.Get <UpdatePrimaerdatenAuftragStatusConsumer>()); });

                helper.SubscribeAllSettingsInAssembly(Assembly.GetExecutingAssembly(), cfg, host);
                cfg.UseSerilog();
            });

            // Add the bus instance to the IoC container
            kernel.Bind <IBus>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IBusControl>().ToMethod(context => bus).InSingletonScope();
            kernel.Bind <IRequestClient <DoesExistInCacheRequest, DoesExistInCacheResponse> >().ToMethod(CreateDoesExistInCacheRequestClient);
            kernel.Bind <IRequestClient <JobInitRequest, JobInitResult> >().ToMethod(CreateJobInitRequestClient);
            kernel.Bind <IRequestClient <SupportedFileTypesRequest, SupportedFileTypesResponse> >().ToMethod(CreateSupportedFileTypesRequestClient);
            kernel.Bind <IRequestClient <ConversionStartRequest, ConversionStartResult> >().ToMethod(CreateDocumentConversionRequestClient);
            kernel.Bind <IRequestClient <ExtractionStartRequest, ExtractionStartResult> >().ToMethod(CreateDocumentExtractionRequestClient);
            kernel.Bind <IRequestClient <FindArchiveRecordRequest, FindArchiveRecordResponse> >().ToMethod(CreateFindArchiveRecordRequestClient);

            bus.Start();

            // Start the timer
            Log.Verbose("Starting scheduler");
            await scheduler.Start();

            Log.Information("Asset service started");
        }