internal void Initialize(ref int index) { if (InfoBase.ReferenceTypeUuids.TryGetValue(Property.PropertyType.ReferenceTypeUuid, out ApplicationObject metaObject)) { Enumeration = metaObject as Enumeration; } for (int i = 0; i < Property.Fields.Count; i++) { index++; FieldPurpose purpose = Property.Fields[i].Purpose; if (purpose == FieldPurpose.Value) { ValueIndex = index; } else if (purpose == FieldPurpose.Discriminator) { DiscriminatorIndex = index; } else if (purpose == FieldPurpose.TypeCode) { TypeCodeIndex = index; } else if (purpose == FieldPurpose.String) { StringIndex = index; } else if (purpose == FieldPurpose.Boolean) { BooleanIndex = index; } else if (purpose == FieldPurpose.Object) { ObjectIndex = index; } else if (purpose == FieldPurpose.Numeric) { NumberIndex = index; } else if (purpose == FieldPurpose.DateTime) { DateTimeIndex = index; } else { // ingnore this kind of the field purpose !? } } }
private Field GetValueField(FilterParameter filter) { Property property = GetPropertyByName(filter.Name); IList <Field> fields = property.Fields; FieldPurpose purpose = FieldPurpose.Value; if (filter.Value == null || filter.Value is ReferenceObject) { purpose = FieldPurpose.Object; } foreach (Field field in fields) { if (field.Purpose == purpose) { return(field); } } return(fields[0]); }