internal static IServiceCollection AddMarketDataMessageQueue(this IServiceCollection services) { services.AddSingleton <IMarketDataMessageQueueDispatcher>(sp => { var configuration = sp.GetService <IConfiguration>(); string marketDataQueueName = configuration.GetValue <string>("MARKET_DATA_QUEUE_NAME"); var serviceBusConfiguration = new ServiceBusConfiguration() { ConnectionString = configuration.GetValue <string>("MARKET_DATA_QUEUE_CONNECTION_STRING"), }; var serviceBusClientFactory = new ServiceBusClientFactory(serviceBusConfiguration); var serviceBusQueueDispatcher = new ServiceBusQueueDispatcher(serviceBusClientFactory); return(new MarketDataMessageQueueDispatcher( serviceBusQueueDispatcher, sp.GetRequiredService <IMessageEnvelopeFactory>(), marketDataQueueName)); }); return(services); }
internal static IServiceCollection AddChargeQueue(this IServiceCollection services) { services.AddSingleton <IChangeOfChargePostOfficeQueueDispatcher>(sp => { var configuration = sp.GetService <IConfiguration>(); string chargeQueueName = configuration.GetValue <string>("CHARGE_QUEUE_NAME"); var serviceBusConfiguration = new ServiceBusConfiguration() { ConnectionString = configuration.GetValue <string>("CHARGE_QUEUE_CONNECTION_STRING"), }; var serviceBusClientFactory = new ServiceBusClientFactory(serviceBusConfiguration); var serviceBusQueueDispatcher = new ServiceBusQueueDispatcher(serviceBusClientFactory); return(new ChangeOfChargePostOfficeQueueDispatcher( serviceBusQueueDispatcher, sp.GetRequiredService <IMessageEnvelopeFactory>(), chargeQueueName)); }); return(services); }