public async Task <IActionResult> ImportCid(IFormFile file, [FromServices] IWebHostEnvironment webHostEnvironment) { // DRY if (!ArquivoValido.EhValido(file, "Cid.Csv")) { return(RedirectToAction("ArquivoInvalido")); // DELEGUEI } var filePah = $"{webHostEnvironment.WebRootPath}\\importFiles\\{file.FileName}"; CopiarArquivo.Copiar(file, filePah); // Deleguei int k = 0; string line; List <Cid> cids = new List <Cid>(); Encoding encodingPage = Encoding.GetEncoding(1252); bool detectEncoding = false; using (var fs = System.IO.File.OpenRead(filePah)) using (var stream = new StreamReader(fs, encoding: encodingPage, detectEncoding)) while ((line = stream.ReadLine()) != null) { string[] parts = line.Split(";"); // cidinternalid, codigo, diagnostico (os campos que vem no cabecalho do .csv) if (k > 0) // Pular Cabechalho { if (!_context.Cid.Any(e => e.CidInternalId == int.Parse(parts[0]))) { cids.Add(new Cid { CidInternalId = int.Parse(parts[0]), Codigo = parts[1], Diagnostico = parts[2] }); } } k++; } if (cids.Any()) { await _context.AddRangeAsync(cids); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); }
public Controller(int option, string sourcePath, string content) { switch (option) { case 1: CopiarArquivo.copiaArquivo(sourcePath); break; case 2: CopiarArquivo.copiaArquivo(sourcePath); break; case 3: LerArquivo.lerSemFileStream(sourcePath); break; case 4: LerArquivo.lerArquivoComReadAllLines(sourcePath); break; case 5: LerArquivo.lerComFileStreamComFechamentoAutomatico(sourcePath); break; case 6: LerArquivo.lerSemFileStream(sourcePath); break; case 7: EscreverArquivo.escreverComWriteLine(sourcePath, content); break; case 8: Diretorios.diretorios(); break; case 9: FuncoesDoPath.funcoesDoPath(sourcePath); break; } }