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