Beispiel #1
0
        public static CsvImportOptions FromDictionary(Dictionary <string, string> dictionary)
        {
            CsvImportOptions options = new CsvImportOptions();

            if (dictionary.TryGetValue("encoding", out string encodingName))
            {
                switch (encodingName.ToLowerInvariant())
                {
                case "utf8":
                case "utf-8":
                    options.Encoding = CsvImportEncoding.Utf8;
                    break;

                case "windows1252":
                case "windows-1252":
                    options.Encoding = CsvImportEncoding.Windows1252;
                    break;

                case "ascii":
                    options.Encoding = CsvImportEncoding.Ascii;
                    break;

                default:
                    options.Encoding = CsvImportEncoding.Auto;
                    break;
                }
            }

            if (dictionary.TryGetValue("overwrite", out string overwrite))
            {
                options.OverwriteExisting = StringUtils.ParseBoolean(overwrite);
            }

            return(options);
        }
Beispiel #2
0
        public static CsvImportOptions Parse(JObject obj)
        {
            CsvImportOptions options = new CsvImportOptions();

            string encodingName = (obj.GetString("encoding") ?? "").ToLowerInvariant();

            switch (encodingName)
            {
            case "utf8":
            case "utf-8":
                options.Encoding = CsvImportEncoding.Utf8;
                break;

            case "windows1252":
            case "windows-1252":
                options.Encoding = CsvImportEncoding.Windows1252;
                break;

            case "ascii":
                options.Encoding = CsvImportEncoding.Ascii;
                break;

            default:
                options.Encoding = CsvImportEncoding.Auto;
                break;
            }

            options.OverwriteExisting = obj.GetBoolean("overwrite");

            return(options);
        }
Beispiel #3
0
 public CsvInternalImportOptions(CsvFile file, CsvImportOptions options)
 {
     File    = file;
     Options = options;
 }
Beispiel #4
0
        public object Import(RedirectsProviderFile file, CsvImportOptions options)
        {
            if (file == null)
            {
                throw new ArgumentNullException(nameof(file));
            }
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            // Determine the encoding
            Encoding encoding;

            switch (options.Encoding)
            {
            case CsvImportEncoding.Ascii:
                encoding = Encoding.ASCII;
                break;

            case CsvImportEncoding.Utf8:
                encoding = Encoding.UTF8;
                break;

            case CsvImportEncoding.Windows1252:
                encoding = Encoding.GetEncoding(1252);
                break;

            default:
                encoding = Encoding.GetEncoding(1252);
                //using (var reader = new StreamReader(file.InputStream, Encoding.Default, true)) {
                //    reader.Peek(); // you need this!
                //    encoding = reader.CurrentEncoding;
                //}
                break;
            }

            // Load the CSV file from the stream
            CsvFile csv;

            using (Stream stream = file.InputStream) {
                csv = CsvFile.Load(stream, encoding);
            }

            CsvInternalImportOptions io = new CsvInternalImportOptions(csv, options);

            // Determine the columns
            MapCsvColumns(io);

            // Parse the rows
            List <RedirectImportItem> redirects = ParseCsvRows(io);


            var service = new RedirectsImportService();


            foreach (var redirect in redirects)
            {
                service.Import(redirect, options);
            }

            return(redirects);
        }
Beispiel #5
0
 public CsvImportOptions ParseImportSettings(Dictionary <string, string> dictionary)
 {
     return(CsvImportOptions.FromDictionary(dictionary));
 }
Beispiel #6
0
 public IImportOptions ParseImportSettings(JObject obj)
 {
     return(CsvImportOptions.Parse(obj));
 }