Пример #1
0
        public ProductPlan(IPlan plan1, IPlan plan2)
        {
            _plan1 = plan1;
            _plan2 = plan2;

            _schema = new Schema();
            _schema.AddAll(_plan1.Schema);
            _schema.AddAll(_plan2.Schema);
        }
Пример #2
0
        public void CanAddAllFieldsFromSchema()
        {
            var schema    = new Schema();
            var newSchema = new Schema();

            Assert.DoesNotThrow(() =>
            {
                schema.AddBoolField("field1");
                schema.AddByteField("field2");

                newSchema.AddAll(schema);
            });

            var fields = newSchema.Fields;

            var field1 = fields.First();
            var field2 = fields.Last();

            Assert.IsNotNull(fields);
            Assert.AreEqual(2, fields.Count);
            Assert.AreEqual(FieldType.Bool, field1.Value.Type);
            Assert.AreEqual("field1", field1.Key);
            Assert.AreEqual(FieldType.Byte, field2.Value.Type);
            Assert.AreEqual("field2", field2.Key);
        }
Пример #3
0
        public Predicate JoinPredicate(Schema schema1, Schema schema2)
        {
            var result = new Predicate();

            var joinedSchema = new Schema();

            joinedSchema.AddAll(schema1);
            joinedSchema.AddAll(schema2);

            foreach (var term in _terms)
            {
                if (!term.AppliesTo(schema1) && !term.AppliesTo(schema2) && term.AppliesTo(joinedSchema))
                {
                    result.Terms.Add(term);
                }
            }

            if (result.Terms.Count == 0)
            {
                return(null);
            }

            return(result);
        }