public TcpPackage CreateNetworkPackage() { lock (_corrIdLock) { var dtos = _events.Select(x => new ClientMessages.Event(x.EventId, x.Type, x.Data, x.Metadata)).ToArray(); var write = new ClientMessages.WriteEvents(_stream, _expectedVersion, dtos); return(new TcpPackage(TcpCommand.WriteEvents, _correlationId, write.Serialize())); } }
public Task <WriteResult> AppendToStreamAsync(string stream, int expectedVersion, IEnumerable <Event> events) { var correlationId = Guid.NewGuid(); var eventDtos = events.Select(x => new ClientMessages.Event(x.EventId, x.Type, x.Data, x.Metadata)).ToArray(); var dto = new ClientMessages.WriteEvents(correlationId, stream, expectedVersion, eventDtos); var package = new TcpPackage(TcpCommand.WriteEvents, correlationId, dto.Serialize()); var taskCompletionSource = new TaskCompletionSource <WriteResult>(); var taskWrapper = new WriteTaskCompletionWrapper(taskCompletionSource); RegisterHandler(correlationId, taskWrapper); EnqueueForSend(package); return(taskCompletionSource.Task); }
public Task<WriteResult> AppendToStreamAsync(string stream, int expectedVersion, IEnumerable<Event> events) { var correlationId = Guid.NewGuid(); var eventDtos = events.Select(x => new ClientMessages.Event(x.EventId, x.Type, x.Data, x.Metadata)).ToArray(); var dto = new ClientMessages.WriteEvents(correlationId, stream, expectedVersion, eventDtos); var package = new TcpPackage(TcpCommand.WriteEvents, correlationId, dto.Serialize()); var taskCompletionSource = new TaskCompletionSource<WriteResult>(); var taskWrapper = new WriteTaskCompletionWrapper(taskCompletionSource); RegisterHandler(correlationId, taskWrapper); EnqueueForSend(package); return taskCompletionSource.Task; }