Esempio n. 1
0
        public static void Write(this System.IO.BinaryWriter writer, IConditionTreeItem value)
        {
            if (value == ConditionTree.Empty)
            {
                writer.Write((byte)0); // 0 for empty
            }
            else if (value is ConditionTree)
            {
                writer.Write((byte)1); // 1 for tree

                var tree = value as ConditionTree;
                writer.Write((ushort)tree.Operator);
                writer.Write(tree.Left);
                writer.Write(tree.Right);
            }
            else if (value is ConditionTreeLeaf)
            {
                var condition = value as ConditionTreeLeaf;
                writer.Write((byte)2); // 0 for condition
                writer.Write((int)condition.Type);
                writer.Write((int)condition.Comparison);
                writer.Write(condition.VariableName);
                writer.WriteType(condition.CompareTo);
            }
        }