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)); }
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)); }
public RequestManager(ApplyingContext context) { _context = context ?? throw new ArgumentNullException(nameof(context)); }