public static IDataLoader CreateDataLoader(SourceDataType type, DataLoadingTarget target, string fileSetName, TableOverwriteMode overwriteMode, bool sourceOrder) { string dir = Directory.GetCurrentDirectory(); string file = string.Concat(fileSetName, DataLoaderConstants.FileExtConfig); using (var stream = File.Open(Path.Combine(dir, file), FileMode.Open, FileAccess.Read)) switch (type) { case SourceDataType.DbfAndKml: return(CreateLoader <DbaseKmlToTablesDataLoaderParams, DbaseKmlEntityProducer>(fileSetName, target, stream, sourceOrder, overwriteMode)); case SourceDataType.Csv: return(CreateLoader <CsvToTablesDataLoaderParams, CsvEntityProducer>(fileSetName, target, stream, sourceOrder, overwriteMode)); case SourceDataType.Kml: return(CreateLoader <KmlToTablesDataLoaderParams, KmlEntityProducer>(fileSetName, target, stream, sourceOrder, overwriteMode)); } throw new NotSupportedException(type.ToString()); }
/// <summary> /// Creates either a Console or WPF Data Loader /// </summary> /// <typeparam name="DLParams">Specific Data Loader Create</typeparam> /// <typeparam name="Producer">Specific Entity to Produce</typeparam> /// <param name="fileSetName"></param> /// <param name="target"></param> /// <param name="stream"></param> /// <param name="sourceOrder"></param> /// <param name="overwriteMode"></param> /// <returns></returns> private static IDataLoader CreateLoader <DLParams, Producer>(string fileSetName, DataLoadingTarget target, FileStream stream, bool sourceOrder, TableOverwriteMode overwriteMode) where DLParams : DataLoaderParams where Producer : EntityProducer { switch (target) { case DataLoadingTarget.Console: return(CreateConsoleLoader <DLParams, Producer>(stream, fileSetName, sourceOrder)); case DataLoadingTarget.Tables: return(CreateTablesLoader <DLParams, Producer>(stream, fileSetName, sourceOrder, overwriteMode)); } throw new NotSupportedException(target.ToString()); }