public async Task <IActionResult> GetFunctional(Guid id) { using (var session = _store.OpenSession()) { var events = (await session.Events.FetchStreamAsync(id)).Select(@event => @event.Data).ToList(); return(Ok(new { Quest = QuestPartyF.Aggregate(events), Monsters = MonstersSlayedF.Aggregate(events) })); } }
public void MonstersSlayedAggregateTest() { var questId = Guid.NewGuid(); var events = new Object[] { new QuestStarted { Id = questId, Name = "test quest 1" }, new MembersJoined { QuestId = questId, Day = 0, Location = "ildrasil", Members = new string[] { "jalvar", "rei" } }, new PigSlayed(questId), new PigSlayed(questId), new BossSlayed(questId, "Lich King"), new PigSlayed(questId), }; var monstersSlayed = MonstersSlayedF.Aggregate(events.ToList()); Assert.AreEqual(3, monstersSlayed.PigsKilled); Assert.IsTrue(monstersSlayed.BossNames.Contains("Lich King")); }