public Task<EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); if (eventNumber < -1) throw new ArgumentOutOfRangeException(nameof(eventNumber)); var source = new TaskCompletionSource<EventReadResult>(); var operation = new ReadEventOperation(Settings.Log, source, stream, eventNumber, resolveLinkTos, Settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }
public async Task <EventReadResult> ReadEventAsync(string stream, long eventNumber, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); if (eventNumber < -1) { throw new ArgumentOutOfRangeException(nameof(eventNumber)); } var source = new TaskCompletionSource <EventReadResult>(TaskCreationOptions.RunContinuationsAsynchronously); var operation = new ReadEventOperation(Settings.Log, source, stream, eventNumber, resolveLinkTos, Settings.RequireMaster, userCredentials); await EnqueueOperation(operation).ConfigureAwait(false); return(await source.Task.ConfigureAwait(false)); }
public Task<EventReadResult> ReadEventAsync(string stream, int eventNumber, bool resolveLinkTos, UserCredentials userCredentials = null) { Ensure.NotNullOrEmpty(stream, "stream"); if (eventNumber < -1) throw new ArgumentOutOfRangeException("eventNumber"); var source = new TaskCompletionSource<EventReadResult>(); var operation = new ReadEventOperation(_settings.Log, source, stream, eventNumber, resolveLinkTos, _settings.RequireMaster, userCredentials); EnqueueOperation(operation); return source.Task; }