public async Task AppendEventsToStreamAsync(string stream, IEnumerable <IEvent> events, int?expectedVersion, CancellationToken cancellationToken = default) { var stopWatch = new Stopwatch(); stopWatch.Start(); var gregsEvents = new List <EventData>(); foreach (var e in events) { var metadata = _serDes.Serialize(new EventMetadata(e.GetType(), CorrelationManager.GetCorrelationId())); var data = _serDes.Serialize(e); var ge = new EventData(e.EventId, GetFullTypeName(e.GetType()), true, data, metadata); gregsEvents.Add(ge); } using (var connection = await GetConnectionAsync()) { await connection.AppendToStreamAsync(stream, expectedVersion ?? ExpectedVersion.Any, gregsEvents.ToArray()); } stopWatch.Stop(); _logger.LogDebug("GetEventStoreClient.AppendEventsToStreamAsync for {Stream} took {ElapsedMilliseconds} ms", stream, stopWatch.ElapsedMilliseconds); }
private IList <EventDescriptor> SerializeEvents(string streamId, IEnumerable <IEvent> events) { var stopWatch = new Stopwatch(); stopWatch.Start(); var results = new List <EventDescriptor>(); foreach (var @event in events) { var eventDescriptor = new EventDescriptor(@event.EventId, GetFullTypeName(@event.GetType()), _eventStoreSerDes.Serialize(@event), streamId, CorrelationManager.GetCorrelationId()); results.Add(eventDescriptor); } stopWatch.Stop(); _logger.LogDebug("EventStore.SerializeEvents for {Stream} took {ElapsedMilliseconds} ms", streamId, stopWatch.ElapsedMilliseconds); return(results); }