public object Upload() { HttpPostedFile file = HttpContext.Current.Request.Files["file"]; if (file == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "No file specified.")); } if (file.ContentType != "application/octet-stream" || !file.FileName.ToLower().EndsWith(".csv")) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "Specified file must be a CSV file.")); } RedirectsProviderFile pfile = new RedirectsProviderFile(new HttpPostedFileWrapper(file)); Dictionary <string, string> body = new Dictionary <string, string>(); foreach (string key in HttpContext.Current.Request.Form.Keys) { body[key] = HttpContext.Current.Request.Form[key]; } return(new RedirectsImportService().Import(pfile, CsvImportOptions.FromDictionary(body))); }
public object Import(RedirectsProviderFile file, IImportOptions options) { if (file == null) { throw new ArgumentNullException(nameof(file)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (!(options is CsvImportOptions)) { throw new ArgumentException("Must be an instance of CsvImportOptions", nameof(options)); } return(Import(file, (CsvImportOptions)options)); }
public object Import(RedirectsProviderFile file, CsvImportOptions options) { return(new CsvRedirectsProvider().Import(file, options)); }
public object Import(RedirectsProviderFile file, JObject options) { return(Import(file, CsvImportOptions.Parse(options))); }
public object Import(RedirectsProviderFile file, Dictionary <string, string> options) { return(Import(file, CsvImportOptions.FromDictionary(options))); }
public object Import(RedirectsProviderFile file) { return(Import(file, default(CsvImportOptions))); }
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); }