public IActionResult Index(IFormFile fileImport, int teacher_id)
        {
            bool Import    = false;
            var  tableData = _context.LogImportacao.CountAsync();

            if (tableData.Result == 0)
            {
                Import = true;
            }

            else
            {
                var      data        = _context.LogImportacao.MaxAsync(x => x.DataImportacao);
                DateTime dataH       = Convert.ToDateTime(data.Result.ToString());
                var      minInterval = int.Parse(_config.GetSection("TimeImport:IntervalMinutes").Value);

                var hourLastImport        = dataH;
                var hourLastImportnterval = hourLastImport.AddMinutes(minInterval);

                var dateNow = DateTime.Now;
                if (dateNow >= hourLastImportnterval)
                {
                    Import = true;
                }
                else
                {
                    Import = false;
                }
            }



            // aqui pode importar
            if (Import)
            {
                ViewBag.Import = ViewBag.IdImport;
                if (fileImport == null || fileImport.Length == 0)
                {
                    ViewData["Erro"] = "Error: Arquivo não selecionado.";
                    return(View(ViewData));
                }

                if (!fileImport.FileName.Contains(".txt"))
                {
                    ViewData["Erro"] = "Error: Formato do arquivo incorreto.";
                    return(View(ViewData));
                }

                string fileName = "import_" + fileImport.FileName;
                //string fileName = "import_" + Hash.getHash() + ".txt";

                string pathFileComplete = Path.Combine(_appEnvironment.WebRootPath, "files", fileName);

                using (var stream = new FileStream(pathFileComplete, FileMode.Create))
                {
                    fileImport.CopyTo(stream);
                }

                var lines = System.IO.File.ReadAllLines(pathFileComplete);


                foreach (string line in lines)
                {
                    var lineData = line.Split("||");

                    var lineStudent = new Alunos();

                    lineStudent.Nome            = lineData[0];
                    lineStudent.PagamentoMensal = decimal.Parse(lineData[1]);
                    lineStudent.DataVencimento  = DateTime.Parse(lineData[2]);
                    lineStudent.ProfessorId     = teacher_id;
                    _context.Alunos.Add(lineStudent);
                    _context.SaveChanges();
                }
                TempData["success"] = true;

                var dataImport = new LogImportacao();
                dataImport.NomeArquivo = fileImport.FileName;
                //dataImport.DateImport = DateTime.Now;
                _context.LogImportacao.Add(dataImport);
                _ = _context.SaveChanges();
            }
            else
            { // aqui é quando não pode importar
                TempData["TimeShort"] = true;
            }



            return(RedirectToAction("Index", "Alunos", new { id = teacher_id }));
        }
示例#2
0
 public void ProcessarNotaFaturamento(Movimento movimento, Parametros parametros, LogImportacao logImportacao) =>
 ProcessarNota(movimento, parametros, logImportacao, true);
        public void ProcessarPedidos(IEnumerable <Respostas> pedidos, Parametros parametros, LogImportacao logImportacao)
        {
            List <TMOV> movimentos = new List <TMOV>();
            int         idMov      = _autoIncrementoApp.ReservarValorAutoIncremento(parametros.CodigoColigada, TMOV.CODAUTOINC, pedidos.SelectMany(x => x.Fornecedores.Fornecedor).Count());
            string      numeroMovimento;

            foreach (var pedido in pedidos)
            {
                int incremento = 1;
                foreach (var fornecedor in pedido.Fornecedores.Fornecedor)
                {
                    numeroMovimento = ($"000000000000{pedido.Cabecalho.PDC}" + $"0{incremento++}".Right(2)).Right(12);
                    ValidarDuplicidadeMovimento(numeroMovimento, logImportacao.NomeArquivo);
                    movimentos.Add(ObterMovimento(pedido, ++idMov, numeroMovimento, fornecedor, parametros));
                }
            }
            _service.AddRange(movimentos);
            _logImportacaoApp.Add(logImportacao);
        }