internal override void CreateDataSchema(IntegrationContext context) { DataTable dt = context.State["datatable"] as DataTable; if (dt == null) { throw new ArgumentException("context.State[\"datatable\"]"); } //if (dt.Rows.Count == 0) // throw new ArgumentException("rows cannot be empty."); DataSchema dataSchema = new DataSchema(); dataSchema.TransferMode = DataFixMode.Skip; List <DataSchemaField> fields = new List <DataSchemaField>(); for (int i = 0; i < dt.Columns.Count; i++) { DataSchemaField field = new DataSchemaField(); field.Name = field.Source = field.Destination = dt.Columns[i].ColumnName; field.Type = dt.Columns[i].DataType.ToString(); if (!dt.Columns[i].AllowDBNull) { field.SetAnyAttributeValue("required", "true"); } field.Index = dt.Columns[i].Ordinal; fields.Add(field); } dataSchema.Fields = fields.ToArray(); context.Schema = dataSchema; }
public bool SetAnyAttributeValue(string name, string value) { if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(value)) { return(false); } AnyAttr = DataSchemaField.SetAnyAttributeValue(AnyAttr, name, value); return(true); }