public override DataTableStore GetDataTable(DataTableStore dt) { dt.AddIdentifierColumn(typeof(string)); var uriHelper = new MailChimpUriHelper(APIKey); var mapping = new DataSchemaMapping(SchemaMap, Side); var schema = MailChimpDataSchema.MailChimpListSchema(); helper.SetAuthorizationHeader(APIKey); var result = helper.GetRequestAsJson(uriHelper.ListServiceUrl); if (result["lists"] != null) { foreach (var item_row in result["lists"]) { var newRow = dt.NewRow(); foreach (DataSchemaItem item in SchemaMap.GetIncludedColumns()) { string columnName = mapping.MapColumnToDestination(item); var schemaItem = schema[columnName]; if (schemaItem.IsSubValue) { foreach (var six in item_row[schemaItem.ObjectName]) { foreach (var sub_item in item_row[schemaItem.ObjectName].Children <JProperty>()) { if (sub_item.Name.Equals(schemaItem.FieldName)) { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(sub_item.Value, item.DataType); } } } } else { newRow[item.ColumnName] = DataSchemaTypeConverter.ConvertTo(item_row[schemaItem.FieldName], item.DataType); } } if (dt.Rows.AddWithIdentifier(newRow, DataSchemaTypeConverter.ConvertTo <string>(item_row["id"])) == DataTableStore.ABORT) { break; } } } return(dt); }
public override DataSchema GetDefaultDataSchema() { return(MailChimpDataSchema.MailChimpDataSyncSchema(MailChimpDataSchema.MailChimpListSchema())); }