/// <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); }
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)); }