public ControlNode(SerializationInfo info, StreamingContext context)
     : base(info, context)
 {
     Condition = info.GetValue <Expression>("condition");
     Label     = info.GetValue <string>("label");
     Next      = info.GetValue <ControlNode>("next");
 }
        public bool Equals(ControlNode other)
        {
            if (other == null)
            {
                return(false);
            }

            return((Condition?.Equals(other.Condition) ?? true) &&
                   Label.SequenceEqual(other.Label) &&
                   (Next?.Equals(other.Next) ?? true));
        }
 public ControlNode(Expression condition, string label, ControlNode next)
 {
     Condition = condition;
     Label     = label;
     Next      = next;
 }