コード例 #1
0
 public UnitOfWorkDelegatingHandler(IMicroMediator mediator, ILogger <UnitOfWorkDelegatingHandler> logger,
                                    IServiceProvider provider)
 {
     _mediator = mediator;
     _logger   = logger;
     _provider = provider;
 }
コード例 #2
0
 public static async Task PublishEventsAsync(this IMicroMediator mediator, IAggregateRoot root)
 {
     foreach (var e in root.Events)
     {
         await mediator.SendAsync(e);
     }
 }
コード例 #3
0
        public static async Task ApplyEvents(this IAggregateRoot root, IMicroMediator mediator)
        {
            var events = root.Events.ToList();

            root.ClearEvents();

            foreach (var e in events.AsParallel())
            {
                await mediator.PublishEventAsync(e);
            }
        }
コード例 #4
0
        public Task PublishToDomainAsync(IMicroMediator mediator, ILogger logger, CancellationToken cancellationToken)
        {
            return(Task.Factory.StartNew(async() =>
            {
                try
                {
                    // var sw = Stopwatch.StartNew();

                    await mediator.PublishAsync(GetMessage());

                    // sw.Stop();

                    // SetMediatorProcess(sw.Elapsed.TotalMilliseconds);
                }
                catch (Exception e)
                {
                    logger.LogError($"Consumed a message : {_topic} failed", e);
                }
                finally
                {
                    await Task.CompletedTask;
                }
            }, cancellationToken));
        }
コード例 #5
0
 public EventDispatcherHandler(IMicroMediator mediator)
 {
     _mediator = mediator;
 }
コード例 #6
0
 public UnitOfWorkDelegatingHandler(IUnitOfWork unitOfWork, IMicroMediator mediator)
 {
     _unitOfWork = unitOfWork;
     _mediator   = mediator;
 }
コード例 #7
0
 public static async Task PublishEventAsync(this IMicroMediator mediator, IDomainEvent @event)
 {
     await mediator.SendAsync(@event);
 }