public static async ValueTask <Event> SerializeAsync( this IEventSerializer serializer, Guid aggregateId, IEvent @event, CancellationToken cancellationToken = default) { return((Event)await serializer.SerializeAsync(aggregateId, @event, cancellationToken)); }
// TODO: Ensure this doesn't cause ambiguity errors public static ValueTask <Event <TAggregateId> > SerializeAsync <TAggregateId, T>( this IEventSerializer serializer, TAggregateId aggregateId, T @event, CancellationToken cancellationToken = default) where T : IEvent { return(serializer.SerializeAsync(aggregateId, @event, cancellationToken)); }
public async Task AddAsync <TAggregateId>( TAggregateId aggregateId, IEvent @event, CancellationToken cancellationToken = default) { _logger.LogTrace("Serializing event {Event}", @event); var serialized = await _serializer.SerializeAsync(aggregateId, @event, cancellationToken); _logger.LogTrace("Serialized event {Event}", @event); _logger.LogTrace("Adding event {Event}", @event); await _context.AddAsync(serialized, cancellationToken); _logger.LogTrace("Added event {Event}", @event); _logger.LogTrace("Saving changes asynchronously"); await _context.SaveChangesAsync(cancellationToken); _logger.LogTrace("Saved changes asynchronously"); }