public IContainerNode <TState> When(Func <TReturn, bool> when) { var node = Nodes.AddContainerNode(); _conditions.Add(node, when); return(node); }
public IContainerNode <TState> Otherwise() { var node = Nodes.AddContainerNode(); var nodesWithConditions = Nodes.Intersect(_conditions.Keys).ToList(); _conditions.Add(node, result => !nodesWithConditions.Any(n => _conditions[n](result))); return(node); }