public static WriteResult Commit(this EventStoreTransaction tx) { var task = tx.CommitAsync(); task.Wait(); return(task.Result); }
private Task<object> CommitTransaction(EventStoreTransaction transaction) { var resSource = new TaskCompletionSource<object>(); Action<Task> fail = prevTask => { Log.Info("WriteEventsInTransactionalWay for tran {0} failed", transaction.TransactionId); resSource.SetException(prevTask.Exception); }; var commitTask = transaction.CommitAsync(); commitTask.ContinueWith(fail, TaskContinuationOptions.OnlyOnFaulted); commitTask.ContinueWith(t => { Log.Info("Committed tran {0}", transaction.TransactionId); resSource.SetResult(null); }, TaskContinuationOptions.OnlyOnRanToCompletion); return resSource.Task; }