public Task TransactionalWriteAsync(long transactionId, string stream, IEnumerable <IEvent> events) { Ensure.NotNullOrEmpty(stream, "stream"); Ensure.NotNull(events, "events"); var source = new TaskCompletionSource <object>(); var operation = new TransactionalWriteOperation(source, Guid.NewGuid(), transactionId, stream, events); EnqueueOperation(operation); return(source.Task); }
async Task IEventStoreTransactionConnection.TransactionalWriteAsync(EventStoreTransaction transaction, IEnumerable <EventData> events, UserCredentials userCredentials) { // ReSharper disable PossibleMultipleEnumeration Ensure.NotNull(transaction, "transaction"); Ensure.NotNull(events, "events"); var source = new TaskCompletionSource <object>(TaskCreationOptions.RunContinuationsAsynchronously); var operation = new TransactionalWriteOperation(Settings.Log, source, Settings.RequireMaster, transaction.TransactionId, events, userCredentials); await EnqueueOperation(operation).ConfigureAwait(false); await source.Task.ConfigureAwait(false); // ReSharper restore PossibleMultipleEnumeration }