示例#1
0
        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));
        }
示例#2
0
        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();
            }
        }
示例#3
0
		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);
		}
示例#4
0
		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();
			}
		}