public async Task Add(EventualConsistentEvent eventualConsistent) { // TODO: don't call GetType() and get name from some cached context? var @event = eventualConsistent.Event; var eventHandlerName = eventualConsistent.EventHandlerName; var eventName = @event.GetType().FullName; var customConverter = CreateConverter(eventName); var payload = customConverter == null ? _jsonConverter.Serialize(@event) : customConverter.Convert(@event); await UnitOfWork.ExecuteAsync( "INSERT INTO events VALUES (DEFAULT, @eventName, @eventHandlerName, 0, 0, @payload)", new { eventName, eventHandlerName, payload }); }
public async Task Update(EventualConsistentEvent eventualConsistent) { await UnitOfWork.ExecuteAsync( "UPDATE events " + "SET state = @state, " + " processAttempts = @processAttempts," + " errorMessage = @errorMessage " + "WHERE id = @id ", new { id = eventualConsistent.Event.Id, state = eventualConsistent.State, processAttempts = eventualConsistent.ProcessAttempts, errorMessage = eventualConsistent.ErrorMessage }); }