private XmlNode createProperty(PropertyModel pm) { var p = xml.CreateElement("Property"); p.Attributes.Append(attr("name", pm.Name)); p.Attributes.Append(attr("type", pm.Type)); p.Attributes.Append(attr("default", pm.DefaultValue)); switch (pm.Type) { case PropertyType.Boolean: break; case PropertyType.Computed: p.Attributes.Append(attr("formula", (pm as ComputedPropertyModel).Formula)); break; case PropertyType.Datetime: break; case PropertyType.Enum: p.Attributes.Append(attr("enumType", (pm as EnumPropertyModel).EnumType.AssemblyQualifiedName)); break; case PropertyType.Number: p.Attributes.Append(attr("isInteger", (pm as NumberPropertyModel).IsInteger)); break; case PropertyType.Sequence: var sp = pm as SequencePropertyModel; p.Attributes.Append(attr("sequenceType", sp.SequenceType)); p.Attributes.Append(attr("sequenceId", sp.SequenceId)); break; case PropertyType.String: p.Attributes.Append(attr("length", (pm as StringPropertyModel).Length)); break; default: throw new NotImplementedException(string.Format("Domain model serialization for property type {0} is not implemented.", pm.Type)); } return p; }
private EntityRuleModel readRule(XmlElement el, EntityModel em) { var type = el.Attributes["type"].Value; switch (type) { case "RequiredRuleModel": return new RequiredRuleModel(em.Properties[el.Attributes["property"].Value]); case "UniqueRuleModel": var propNodes = el.SelectNodes("Property"); PropertyModel[] pms = new PropertyModel[propNodes.Count]; int i = 0; foreach (XmlElement pn in propNodes) { pms[i] = em.Properties[pn.Attributes["name"].Value]; } return new UniqueRuleModel(pms); case "FutureOrPastDateRuleModel": return new FutureOrPastDateRuleModel(em.Properties[el.Attributes["property"].Value] as DateTimePropertyModel, TimeSpan.Parse(el.Attributes["offset"].Value), bool.Parse(el.Attributes["future"].Value)); default: throw new NotImplementedException(string.Format("Deserialization of EntityRule of type {0} is not implemented.", type)); } }
public override bool AppliesFor(PropertyModel property) { return(property.Name.Equals(Property.Name, StringComparison.InvariantCultureIgnoreCase)); }
public IEnumerable <EntityRuleModel> GetRulesFor(PropertyModel property) { return(_data.Values.Where(r => r.AppliesFor(property))); }
public override bool AppliesFor(PropertyModel property) { return(Properties.First(p => p.Name.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)) != null); }
public RequiredRuleModel(PropertyModel property) { Property = property; }
public abstract bool AppliesFor(PropertyModel property);
public override bool AppliesFor(PropertyModel property) { return Properties.First(p => p.Name.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)) != null; }
public override bool AppliesFor(PropertyModel property) { return property.Name.Equals(Property.Name, StringComparison.InvariantCultureIgnoreCase); }