示例#1
0
        /// <summary>
        /// Soft delete the aggregate. Its stream can be re-created by appending new events.
        /// </summary>
        /// <param name="aggregate">The aggregate to be deleted.</param>
        public void Delete(IEventSource aggregate)
        {
            var streamName      = _streamNameBuilder.GenerateForAggregate(aggregate.GetType(), aggregate.Id);
            var expectedVersion = aggregate.ExpectedVersion;

            _streamStoreConnection.DeleteStream(streamName, expectedVersion);
        }
示例#2
0
        public void ThrowsOnGetDeletedAggregate()
        {
            var aggregateId = SaveTestAggregateWithoutCustomHeaders(_repo, 10);
            var streamName  = _streamNameBuilder.GenerateForAggregate(typeof(TestWoftamAggregate), aggregateId);

            _connection.DeleteStream(new StreamName(streamName), 10);

            // Assert.Throws<AggregateDeletedException>(() => _repo.GetById<TestAggregate>(aggregateId));
            //Looks like an api change
            Assert.Throws <AggregateNotFoundException>(() => _repo.GetById <TestWoftamAggregate>(aggregateId));
        }