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); }
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); }
public CsvInternalImportOptions(CsvFile file, CsvImportOptions options) { File = file; Options = options; }
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); }
public CsvImportOptions ParseImportSettings(Dictionary <string, string> dictionary) { return(CsvImportOptions.FromDictionary(dictionary)); }
public IImportOptions ParseImportSettings(JObject obj) { return(CsvImportOptions.Parse(obj)); }