public int SaveEvent(IEvent @event, DbTransaction transaction) { if (transaction == null) { throw new ArgumentNullException("transaction", $"A {typeof(DbTransaction).FullName} is required as a pre-requisite to save the event."); } var eventLogEntry = new IntegrationEventLogEntry(@event); _integrationEventLogContext.Database.UseTransaction(transaction); _integrationEventLogContext.IntegrationEventLogs.Add(eventLogEntry); //throw new Exception("test exception"); return(_integrationEventLogContext.SaveChanges()); }
private StoredEvent SaveIntegrationEventLogContext(IDomainEvent domainEvent) { var eventLogEntry = new IntegrationEventLogEntry(Guid.NewGuid().ToString(), domainEvent.GetType().FullName, domainEvent.TimeStamp.DateTime, JsonConvert.SerializeObject(domainEvent) ); eventLogEntry.TimesSent++; eventLogEntry.State = EventStateEnum.Published; _integrationEventLogContext.IntegrationEventLogs.Add(eventLogEntry); int result = _integrationEventLogContext.SaveChanges(); return(new StoredEvent(domainEvent.GetType().FullName, domainEvent.TimeStamp.DateTime, JsonConvert.SerializeObject(domainEvent))); }