private static void Main(string[] args)
        {
            var repo = new Repo();

            var eventId = new Guid("439263a8-95be-499f-b0d5-926d972bce79");
            var events  = new List <InventoryEvent> {
                new Created("Item 1"),
                new Stocked(10),
                new Activated(),
                new Sold(5)
            };

            foreach (var @event in events)
            {
                InventoryItem inventoryItem = repo.Get(eventId);
                InventoryItem newState      = InventoryItem.Apply(@event, inventoryItem);
                repo.Upsert(newState);
            }

            foreach (var inventoryItem in repo.GetAll())
            {
                Console.WriteLine(inventoryItem);
            }
        }
Esempio n. 2
0
 public override void Collect(InventoryItem inventory) => inventory.Apply(statistics);
 private static InventoryItem When(InventoryItem state, InventoryEvent @event) => InventoryItem.Apply(@event, state);