public ProductPlan(IPlan plan1, IPlan plan2) { _plan1 = plan1; _plan2 = plan2; _schema = new Schema(); _schema.AddAll(_plan1.Schema); _schema.AddAll(_plan2.Schema); }
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); }
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); }