public IntegrationEventService(ICapPublisher eventBus, WolfDbContext dbContext, ILogger <IntegrationEventService> logger) { _eventBus = eventBus ?? throw new ArgumentNullException(nameof(eventBus)); _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <param name="env"></param> /// <param name="logService"></param> /// <returns></returns> public static async Task SeedAsync(WolfDbContext context, IHostingEnvironment env, ILogService logService) { try { await using (context) { await context.CreateTable <IdentityType>(); await context.CreateTable <UserSafetyType>(); await context.CreateTable <VerifyState>(); await context.CreateTable <Gender>(); await context.CreateTable <UserState>(); } } catch (Exception ex) { } }
public TransactionBehaviour(IUnitOfWork unitOfWork, ILogger <TransactionBehaviour <TRequest, TResponse> > logger) { _dbContext = unitOfWork as WolfDbContext ?? throw new ArgumentException(nameof(WolfDbContext)); _logger = logger ?? throw new ArgumentException(nameof(ILogger)); }
public static async Task DispatchDomainEventsAsync <T>(this IMediator mediator, WolfDbContext ctx) { var domainEntities = ctx.ChangeTracker .Entries <AggregateRootWork <T> >() .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(); }); var tasks = domainEvents .Select(async domainEvent => { await mediator.Publish(domainEvent); }); await Task.WhenAll(tasks); }