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);
        }
예제 #2
0
        public static async Task <ConditionalWriteResult> ConditionalAppendToStreamAsync(
            this EventStoreClient client,
            string streamName,
            StreamRevision expectedRevision,
            IEnumerable <EventData> eventData,
            UserCredentials?userCredentials     = null,
            CancellationToken cancellationToken = default)
        {
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }
            try {
                var result = await client.AppendToStreamAsync(streamName, expectedRevision, eventData,
                                                              options => options.ThrowOnAppendFailure = false, userCredentials, cancellationToken)
                             .ConfigureAwait(false);

                return(ConditionalWriteResult.FromWriteResult(result));
            } catch (StreamDeletedException) {
                return(ConditionalWriteResult.StreamDeleted);
            }
        }