Example #1
0
        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)));
        }
Example #2
0
        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;
            }
        }