示例#1
0
        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());
        }
示例#2
0
        /// <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());
        }