Esempio n. 1
0
        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;
        }
Esempio n. 2
0
 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));
     }
 }
Esempio n. 3
0
 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)));
 }
Esempio n. 5
0
 public override bool AppliesFor(PropertyModel property)
 {
     return(Properties.First(p => p.Name.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)) != null);
 }
Esempio n. 6
0
 public RequiredRuleModel(PropertyModel property)
 {
     Property = property;
 }
Esempio n. 7
0
 public abstract bool AppliesFor(PropertyModel property);
Esempio n. 8
0
 public abstract bool AppliesFor(PropertyModel property);
Esempio n. 9
0
 public override bool AppliesFor(PropertyModel property)
 {
     return Properties.First(p => p.Name.Equals(property.Name, StringComparison.InvariantCultureIgnoreCase)) != null;
 }
Esempio n. 10
0
 public override bool AppliesFor(PropertyModel property)
 {
     return property.Name.Equals(Property.Name, StringComparison.InvariantCultureIgnoreCase);
 }
Esempio n. 11
0
 public RequiredRuleModel(PropertyModel property)
 {
     Property = property;
 }