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 !?
                }
            }
        }
示例#2
0
        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]);
        }