private void BindRecord(AutoGeneratedFieldProperties[] autoFieldProperties, StringBuilder sb, object obj)
{
sb.Append("{");
System.Data.DataRow dataRow = obj as System.Data.DataRow;
foreach (AutoGeneratedFieldProperties property in autoFieldProperties)
{
FieldInReader field = this.IsInReader(property.DataField);
if (this.IgnoreExtraFields && !field.InReader)
{
continue;
}
if (field.Fields != null && field.Fields.Count > 0)
{
foreach (RecordField recordField in field.Fields)
{
object value = this.GetFieldValue(property, obj, recordField, dataRow);
if (value != null && value.GetType().IsEnum && recordField.Type == RecordFieldType.Int)
{
value = (int)value;
}
sb.AppendFormat("{0}:{1},", JSON.Serialize(string.IsNullOrEmpty(recordField.Mapping) ? recordField.Name : recordField.Mapping), JSON.Serialize(value));
}
}
else
{
if (dataRow == null || !dataRow.IsNull(property.DataField))
{
sb.AppendFormat("{0}:{1},", JSON.Serialize(property.DataField), JSON.Serialize(DataBinder.GetPropertyValue(obj, property.DataField)));
}
}
}
RemoveLastComma(sb);
sb.Append("},");
}