public override void Define() { AddInstruction <T> instruction = default; When() .Match(() => instruction); Then() .Yield(ctx => Add(instruction.LeftValue, instruction.RightValue)); }
public Property <T> Add(Property <T> value1, Property <T> value2) { var session = sessions["add"].Value.CreateSession(); var payload = new AddInstruction <T>(value1, value2); try { session.Insert(payload); session.Fire(); return(session.Query <Property <T> >().Single()); } finally { session.Retract(payload); } }