internal static IMessageBuilder GetApplicationMessageBuilder( IDbConnection connection, string mainConnectionString, string filesConnectionString) { var serializer = new Serializer(); var passwordConverter = new PasswordConverter(); var mainExecutor = new SqlProcedureExecutor(mainConnectionString); var filesExecutor = new SqlProcedureExecutor(filesConnectionString); var states = new StateRepository(mainExecutor); var applications = new ApplicationRepository(connection); var awbs = new AwbRepository(connection); var applicationFiles = new ApplicationFileRepository(filesExecutor); var clientRepository = new ClientRepository(mainExecutor); var clientBalanceRepository = new ClientBalanceRepository(mainExecutor); var countries = new CountryRepository(mainExecutor); var cities = new CityRepository(mainExecutor); var textBulder = new Application.Helpers.TextBuilder( serializer, awbs, countries, cities, states, applicationFiles, clientBalanceRepository, new TextBuilder()); var templates = new TemplateRepository(mainExecutor); var recipientsFacade = new ApplicationEventRecipientsFacade( awbs, applications, new AdminRepository(connection), new ManagerRepository(connection), new SenderRepository(passwordConverter, mainExecutor), clientRepository, new CarrierRepository(passwordConverter, mainExecutor), new ForwarderRepository(passwordConverter, mainExecutor), new BrokerRepository(connection), new EventEmailRecipient(mainExecutor)); var templateRepositoryHelper = new TemplateRepositoryHelper(templates); var filesFacade = GetFilesFacade(connection, mainConnectionString, filesConnectionString); return(new ApplicationMessageBuilder( EmailsHelper.DefaultFrom, filesFacade, textBulder, recipientsFacade, templateRepositoryHelper, serializer, applications)); }
private static void RunAwbJob(string mainConnectionString, string filesConnectionString, int partitionId) { using (var connection = new SqlConnection(mainConnectionString)) { var executor = new SqlProcedureExecutor(mainConnectionString); var events = new EventRepository(executor); var adminRepository = new AdminRepository(connection); var brokerRepository = new BrokerRepository(connection); var awbs = new AwbRepository(connection); var converter = new PasswordConverter(); var senders = new SenderRepository(converter, executor); var localizedDataHelper = new AwbEventLocalizedDataHelper(awbs, senders); var eventEmailRecipient = new EventEmailRecipient(executor); var managerRepository = new ManagerRepository(connection); var recipientsFacade = new AwbEventRecipientsFacade( adminRepository, managerRepository, brokerRepository, awbs, eventEmailRecipient); var messageBuilder = GetCommonMessageBuilder( connection, mainConnectionString, filesConnectionString, localizedDataHelper, recipientsFacade); var emailingProcessor = GetDefaultEmailingProcessor(partitionId, executor, messageBuilder); var processors = (IDictionary <EventState, IEventProcessor>) new Dictionary <EventState, IEventProcessor> { { EventState.Emailing, emailingProcessor } }; new SequentialEventJob( events, partitionId, EventHelper.AwbEventTypes.ToDictionary(x => x, x => processors)).Work(); } }
internal static IMessageBuilder GetApplicationMessageBuilder( IDbConnection connection, string mainConnectionString, string filesConnectionString) { var serializer = new Serializer(); var passwordConverter = new PasswordConverter(); var mainExecutor = new SqlProcedureExecutor(mainConnectionString); var filesExecutor = new SqlProcedureExecutor(filesConnectionString); var states = new StateRepository(mainExecutor); var applications = new ApplicationRepository(connection); var awbs = new AwbRepository(connection); var applicationFiles = new ApplicationFileRepository(filesExecutor); var clientRepository = new ClientRepository(mainExecutor); var clientBalanceRepository = new ClientBalanceRepository(mainExecutor); var countries = new CountryRepository(mainExecutor); var cities = new CityRepository(mainExecutor); var textBulder = new Application.Helpers.TextBuilder( serializer, awbs, countries, cities, states, applicationFiles, clientBalanceRepository, new TextBuilder()); var templates = new TemplateRepository(mainExecutor); var recipientsFacade = new ApplicationEventRecipientsFacade( awbs, applications, new AdminRepository(connection), new ManagerRepository(connection), new SenderRepository(passwordConverter, mainExecutor), clientRepository, new CarrierRepository(passwordConverter, mainExecutor), new ForwarderRepository(passwordConverter, mainExecutor), new BrokerRepository(connection), new EventEmailRecipient(mainExecutor)); var templateRepositoryHelper = new TemplateRepositoryHelper(templates); var filesFacade = GetFilesFacade(connection, mainConnectionString, filesConnectionString); return new ApplicationMessageBuilder( EmailsHelper.DefaultFrom, filesFacade, textBulder, recipientsFacade, templateRepositoryHelper, serializer, applications); }
private static void RunAwbJob(string mainConnectionString, string filesConnectionString, int partitionId) { using(var connection = new SqlConnection(mainConnectionString)) { var executor = new SqlProcedureExecutor(mainConnectionString); var events = new EventRepository(executor); var adminRepository = new AdminRepository(connection); var brokerRepository = new BrokerRepository(connection); var awbs = new AwbRepository(connection); var converter = new PasswordConverter(); var senders = new SenderRepository(converter, executor); var localizedDataHelper = new AwbEventLocalizedDataHelper(awbs, senders); var eventEmailRecipient = new EventEmailRecipient(executor); var managerRepository = new ManagerRepository(connection); var recipientsFacade = new AwbEventRecipientsFacade( adminRepository, managerRepository, brokerRepository, awbs, eventEmailRecipient); var messageBuilder = GetCommonMessageBuilder( connection, mainConnectionString, filesConnectionString, localizedDataHelper, recipientsFacade); var emailingProcessor = GetDefaultEmailingProcessor(partitionId, executor, messageBuilder); var processors = (IDictionary<EventState, IEventProcessor>)new Dictionary<EventState, IEventProcessor> { { EventState.Emailing, emailingProcessor } }; new SequentialEventJob( events, partitionId, EventHelper.AwbEventTypes.ToDictionary(x => x, x => processors)).Work(); } }