public async Task returns_failure_status_when_conditionally_appending_with_version_mismatch() { var stream = _fixture.GetStreamName(); var result = await _fixture.Client.ConditionalAppendToStreamAsync(stream, new StreamRevision(7), _fixture.CreateTestEvents()); Assert.Equal(ConditionalWriteResult.FromWrongExpectedVersion( new WrongExpectedVersionException(stream, new StreamRevision(7), StreamRevision.None)), result); }
public static async Task <ConditionalWriteResult> ConditionalAppendToStreamAsync( this EventStoreClient client, string streamName, StreamState expectedState, IEnumerable <EventData> eventData, UserCredentials?userCredentials = null, CancellationToken cancellationToken = default) { if (client == null) { throw new ArgumentNullException(nameof(client)); } try { var result = await client.AppendToStreamAsync(streamName, expectedState, eventData, userCredentials : userCredentials, cancellationToken : cancellationToken).ConfigureAwait(false); return(ConditionalWriteResult.FromWriteResult(result)); } catch (StreamDeletedException) { return(ConditionalWriteResult.StreamDeleted); } catch (WrongExpectedVersionException ex) { return(ConditionalWriteResult.FromWrongExpectedVersion(ex)); } }