Ejemplo n.º 1
0
 public void Register(AggregateBase aggregate)
 {
     if (aggregate != null)
     {
         _identityMap.Add(aggregate);
     }
 }
Ejemplo n.º 2
0
        public async Task <Exception> Dispatch(AggregateBase aggregate)
        {
            var repository = GetRepository(aggregate.GetType());

            foreach (var domainEvent in aggregate.Outbox.ToArray())
            {
                try
                {
                    var handler = GetHandler(domainEvent);

                    await handler.Handle(domainEvent, _serviceFactory);

                    aggregate.ProcessDomainEvent(domainEvent);

                    await repository.Update(aggregate);
                }
                catch (Exception ex)
                {
                    return(ex);
                }
            }
            return(null);
        }
Ejemplo n.º 3
0
 public abstract Task Update(AggregateBase aggregate);