Esempio n. 1
0
 public TransactionBehaviour(ApplyingContext dbContext,
                             IApplyingIntegrationEventService orderingIntegrationEventService,
                             ILogger <TransactionBehaviour <TRequest, TResponse> > logger)
 {
     _dbContext = dbContext ?? throw new ArgumentException(nameof(ApplyingContext));
     _orderingIntegrationEventService = orderingIntegrationEventService ?? throw new ArgumentException(nameof(orderingIntegrationEventService));
     _logger = logger ?? throw new ArgumentException(nameof(ILogger));
 }
 public ApplyingIntegrationEventService(IEventBus eventBus,
                                        ApplyingContext applyingContext,
                                        IntegrationEventLogContext eventLogContext,
                                        Func <DbConnection, IIntegrationEventLogService> integrationEventLogServiceFactory,
                                        ILogger <ApplyingIntegrationEventService> logger)
 {
     _applyingContext = applyingContext ?? throw new ArgumentNullException(nameof(applyingContext));
     _integrationEventLogServiceFactory = integrationEventLogServiceFactory ?? throw new ArgumentNullException(nameof(integrationEventLogServiceFactory));
     _eventBus        = eventBus ?? throw new ArgumentNullException(nameof(eventBus));
     _eventLogService = _integrationEventLogServiceFactory(_applyingContext.Database.GetDbConnection());
     _logger          = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Esempio n. 3
0
        public static async Task DispatchDomainEventsAsync(this IMediator mediator, ApplyingContext ctx)
        {
            var domainEntities = ctx.ChangeTracker
                                 .Entries <Entity>()
                                 .Where(x => x.Entity.DomainEvents != null && x.Entity.DomainEvents.Any());

            var domainEvents = domainEntities
                               .SelectMany(x => x.Entity.DomainEvents)
                               .ToList();

            domainEntities.ToList()
            .ForEach(entity => entity.Entity.ClearDomainEvents());

            foreach (var domainEvent in domainEvents)
            {
                await mediator.Publish(domainEvent);
            }
        }
        public async Task SeedAsync(ApplyingContext context, IWebHostEnvironment env, IOptions<ApplyingSettings> settings, ILogger<ApplyingContextSeed> logger)
        {
            var policy = CreatePolicy(logger, nameof(ApplyingContextSeed));

            await policy.ExecuteAsync(async () =>
            {

                var useCustomizationData = settings.Value
                .UseCustomizationData;

                var contentRootPath = env.ContentRootPath;


                using (context)
                {
                    context.Database.Migrate();

                    if (!context.PaymentTypes.Any())
                    {
                        context.PaymentTypes.AddRange(useCustomizationData
                                                ? GetPaymentTypesFromFile(contentRootPath, logger)
                                                : GetPredefinedPaymentTypes());

                        await context.SaveChangesAsync();
                    }

                    if (!context.ApplicationStatus.Any())
                    {
                        context.ApplicationStatus.AddRange(useCustomizationData
                                                ? GetApplicationStatusFromFile(contentRootPath, logger)
                                                : GetPredefinedApplicationStatus());
                    }

                    await context.SaveChangesAsync();
                }
            });
        }
 public ApplicationRepository(ApplyingContext context)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
 }
Esempio n. 6
0
 public RequestManager(ApplyingContext context)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
 }