Пример #1
0
        /// <summary>
        ///     Store fields into the JSON entity structure.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <param name="entityData">The entity being read.</param>
        /// <param name="entityJson">JSON for holding member data for the individual entity.</param>
        private void AppendFieldsToEntity(JsonQueryResult result, EntityData entityData,
                                          Dictionary <string, object> entityJson)
        {
            Dictionary <long, JsonMember> members = result.Members;

            // Visit fields
            foreach (FieldData field in entityData.Fields)
            {
                long fieldId = field.FieldId.Id;
                // Register the field member
                JsonMember member;
                if (members.TryGetValue(fieldId, out member))
                {
                    if (field.FieldId.Alias != null && member.Alias == null)
                    {
                        member.Alias = GetAliasString(field.FieldId);
                    }
                }
                else
                {
                    member = new JsonMember
                    {
                        Alias = GetAliasString(field.FieldId), DataType = DataTypeHelper.FromDatabaseType(field.Value.Type).ToString( )
                    };
                    members.Add(fieldId, member);
                }

                object value = field.Value.Value;

                // Ensure empty strings are represented as nulls - this is by design!
                if (value is string && (( string )value).Length == 0)
                {
                    value = null;
                }

                // Store the data in the entity
                entityJson[fieldId.ToString(CultureInfo.InvariantCulture)] = value;
            }
        }