public static MappingDictionary ParseText( IList <string> fieldIDs, TextMappingParser parser) { MemoryStream memoryStream = new MemoryStream(); try { StreamWriter streamWriter = new StreamWriter((Stream)memoryStream); try { foreach (string fieldId in (IEnumerable <string>)fieldIDs) { streamWriter.WriteLine(fieldId); } streamWriter.Flush(); return(MappingDictionary.ParseText((Stream)memoryStream, parser)); } finally { streamWriter?.Close(); } } finally { memoryStream?.Close(); } }
public static TextMappingParser Create() { if (TextMappingParser.__parser == null) { TextMappingParser.__parser = new TextMappingParser(); TextMappingParser.__parser.MappingConvertFunc = new Func <DataRow, IMapping>(TextMappingParser.MappingConvert); } return(TextMappingParser.__parser); }
public static MappingDictionary ParseText( Assembly assembly, string resName, TextMappingParser parser) { Stream manifestResourceStream = assembly.GetManifestResourceStream(resName); try { return(MappingDictionary.ParseText(manifestResourceStream, parser)); } finally { manifestResourceStream?.Close(); } }
public static MappingDictionary ParseText( string fileName, TextMappingParser parser) { if (string.IsNullOrWhiteSpace(fileName)) { throw new ArgumentNullException(nameof(fileName)); } if (!File.Exists(fileName)) { throw new FileNotFoundException(string.Format("Can't find mapping file:{0}", (object)fileName)); } FileStream fileStream = File.OpenRead(fileName); try { return(MappingDictionary.ParseText((Stream)fileStream, parser)); } finally { fileStream?.Close(); } }
public static MappingDictionary ParseText( Stream stream, TextMappingParser parser) { if (parser == null) { throw new ArgumentNullException(nameof(parser)); } if (parser == null) { throw new ArgumentNullException(nameof(parser)); } DataSet dataSet = new DataSet(); StreamReader streamReader = new StreamReader(stream); DataTable table = (DataTable)null; try { while (!streamReader.EndOfStream) { string line = string.Format("{0}", (object)streamReader.ReadLine()).Trim(); if (!string.IsNullOrWhiteSpace(line)) { string tableName; if (parser.ParseTableName(line, out tableName)) { table?.AcceptChanges(); if (dataSet.Tables.Contains(tableName)) { throw new Exception(string.Format("Duplication table name:{0}.", (object)tableName)); } table = parser.CreateSchema(tableName); dataSet.Tables.Add(table); } else { if (table == null) { table = parser.CreateSchema(parser.DefaultTableName); dataSet.Tables.Add(table); } DataRow row = table.NewRow(); Enums.ValueType valueType = parser.ParseTypeFunc == null ? Enums.ValueType.Unknown : parser.ParseTypeFunc(line); object[] objArray = new object[4] { parser.DataColumnNameConvertFunc != null ? (object)parser.DataColumnNameConvertFunc(line) : (object)line, (object)line, (object)string.Format("[{0}]", (object)line), (object)valueType.ToString() }; row.ItemArray = objArray; table.Rows.Add(row); } } else { break; } } table?.AcceptChanges(); dataSet.AcceptChanges(); } finally { streamReader?.Close(); } return(new MappingDictionary(parser.MappingConvertFunc, dataSet) { DataColumnConvertFunc = parser.DataColumnConvertFunc }); }