public async Task GeneratesActivityStreamForCard()
        {
            var cardId     = Guid.NewGuid().ToString();
            var streamName = $"Card-{cardId}";

            await _esdb.SeedStream(streamName, new Event[]
            {
                new TaskOpened(cardId, DateTime.UtcNow.AddHours(-1), "Test"),
                new CardAssigned(cardId, null, "Jason Mitchell"),
                new DevelopmentStarted(cardId, DateTime.UtcNow)
            });

            await _runner.Start(CancellationToken.None);

            await Wait.UntilAsserted(async() =>
            {
                var activity = await _repository.GetActivityForCard(cardId);
                activity.Should().BeEquivalentTo(new[]
                {
                    "Task 'Test' was opened",
                    "Card was assigned to Jason Mitchell",
                    "Development was started"
                }, opt => opt.WithStrictOrdering());
            });
        }
        public async Task <IActionResult> GetActivity(string cardId)
        {
            var activity = await _repository.GetActivityForCard(cardId);

            if (activity == null)
            {
                return(NotFound());
            }

            return(Ok(activity));
        }