public async Task Handle(AssignCard command) { var card = await _store.Load(command.Id); card.AssignTo(command.Assignee); await _store.Save(card); }
public async Task LoadsCardAggregateFromStream() { var cardId = RandomId(); var streamName = $"Card-{cardId}"; await _esdb.SeedStream(streamName, new Event[] { new TaskOpened(cardId, DateTime.UtcNow.AddDays(-1), "Test task"), new CardAssigned(cardId, null, "Jason Mitchell"), new DevelopmentStarted(cardId, DateTime.UtcNow) }); var card = await _aggregateStore.Load(cardId); card.Version.Should().Be(2); // Sanity check to ensure state is reconstructed card.Title.Should().Be("Test task"); }