public CommandStatus Handle(Increment cmd) { var e = new Incremented { Name = cmd.Name }; _es.Record(e); return(new Success()); }
public Value.Result Handle(Value query) { return(new Value.Result { Value = _es.Replay() .Where(Filter) .Select(Apply).Sum() }); bool Filter(Event e) => e switch { Incremented i => i.Name == query.Name, Decremented d => d.Name == query.Name }; int Apply(Event e) => e switch { Incremented _ => 1, Decremented _ => - 1 }; } }