/// <summary> /// Compiles the domain event properties onto a dictionary /// </summary> /// <param name="event">The domain event</param> /// <returns>The event details as a dictionary</returns> private Dictionary <string, string> CompileEventProperties ( IDomainEvent @event ) { Validate.IsNotNull(@event); var properties = new Dictionary <string, string>() { { "EventTypeName", @event.GetType().Name }, { "EventDescription", @event.ToString() } }; var eventLog = DomainEventLog.CreateLog ( @event ); foreach (var detail in eventLog.Details) { AppendDetail ( ref properties, detail ); } return(properties); }
public async Task <Result> LogEventAsync(string aggregateKey, Type aggregateType, IDomainEvent @event, CancellationToken cancellationToken = default) { var log = DomainEventLog.CreateLog(aggregateKey, aggregateType, @event); var addResult = await _logRepository.AddLogAsync(log).ConfigureAwait(false); return(await addResult.Tap(async() => await _dbContext.SaveChangesAsync())); }
/// <summary> /// Logs the domain event specified /// </summary> /// <param name="event">The domain event</param> public void LogEvent ( IDomainEvent @event ) { Validate.IsNotNull(@event); var log = DomainEventLog.CreateLog ( @event ); _logRepository.AddLog(log); _dbContext.SaveChanges(); }
/// <summary> /// Logs the domain event specified /// </summary> /// <param name="aggregateKey">The aggregate key</param> /// <param name="aggregateType">The aggregate type</param> /// <param name="event">The domain event</param> public void LogEvent ( string aggregateKey, Type aggregateType, IDomainEvent @event ) { Validate.IsNotEmpty(aggregateKey); Validate.IsNotNull(aggregateType); Validate.IsNotNull(@event); var log = DomainEventLog.CreateLog ( aggregateKey, aggregateType, @event ); _logRepository.AddLog(log); _dbContext.SaveChanges(); }
public Result LogEvent(string aggregateKey, Type aggregateType, IDomainEvent @event) { var log = DomainEventLog.CreateLog(aggregateKey, aggregateType, @event); return(_logRepository.AddLog(log).Tap(() => _dbContext.SaveChanges())); }
public Result LogEvent(IDomainEvent @event) { var log = DomainEventLog.CreateLog(@event); return(_logRepository.AddLog(log).Tap(() => _dbContext.SaveChanges())); }