public List <RodoviasTarifas> LerExcelRodovia(ArquivosImportados arquivosImportados, Rodovia rodovia)
        {
            List <RodoviasTarifas> listaRodoviasTarifas = new List <RodoviasTarifas>();


            FileInfo file = new FileInfo(Path.Combine(arquivosImportados.PastaImportacao, arquivosImportados.NomeGerado));

            using (ExcelPackage package = new ExcelPackage(file))
            {
                ExcelWorksheet workSheet = package.Workbook.Worksheets[rodovia.NomeRodovia];
                int            totalRows = workSheet.Dimension.Rows;
                int            contRows  = GetLastUsedRow(workSheet);

                for (int i = 2; i <= contRows; i++)
                {
                    if (!String.IsNullOrEmpty(workSheet.Cells[i, 1].Value.ToString()))
                    {
                        RodoviasTarifas rodoviasTarifas = new RodoviasTarifas();
                        rodoviasTarifas.AssociateCompKNownName = workSheet.Cells[i, 1].Value.ToString();;
                        rodoviasTarifas.Praca                = workSheet.Cells[i, 2].Value.ToString();;
                        rodoviasTarifas.VehicleClassId       = workSheet.Cells[i, 3].Value.ToString();;
                        rodoviasTarifas.Name                 = workSheet.Cells[i, 4].Value.ToString();
                        rodoviasTarifas.DateHourProgramStart = workSheet.Cells[i, 5].Value.ToString();
                        rodoviasTarifas.Value                = workSheet.Cells[i, 6].Value.ToString();
                        rodoviasTarifas.RodoviaId            = rodovia.RodoviaId;
                        listaRodoviasTarifas.Add(rodoviasTarifas);
                    }
                }
            }

            return(listaRodoviasTarifas);
        }
        public List <RodoviaTarifasOperadoras> LerExcelRodoviaTarifasOperadoras(ArquivosImportados arquivosImportados)
        {
            List <RodoviaTarifasOperadoras> listaRodoviasTarifas = new List <RodoviaTarifasOperadoras>();


            FileInfo file = new FileInfo(Path.Combine(arquivosImportados.PastaImportacao, arquivosImportados.NomeGerado));

            using (ExcelPackage package = new ExcelPackage(file))
            {
                ExcelWorksheet workSheet = package.Workbook.Worksheets["Exportar Planilha"];
                int            totalRows = workSheet.Dimension.Rows;
                int            contRows  = GetLastUsedRow(workSheet);

                for (int i = 2; i <= contRows; i++)
                {
                    if (!String.IsNullOrEmpty(workSheet.Cells[i, 1].Value.ToString()))
                    {
                        RodoviaTarifasOperadoras rodoviaTarifasOperadoras = new RodoviaTarifasOperadoras();
                        rodoviaTarifasOperadoras.AssociateId            = Int32.Parse(workSheet.Cells[i, 1].Value.ToString());
                        rodoviaTarifasOperadoras.AssociateCompKnownName = workSheet.Cells[i, 2].Value.ToString();
                        rodoviaTarifasOperadoras.EntryId          = Int32.Parse(workSheet.Cells[i, 3].Value.ToString());
                        rodoviaTarifasOperadoras.RoadCode         = workSheet.Cells[i, 4].Value.ToString();
                        rodoviaTarifasOperadoras.RoadEntryKm      = workSheet.Cells[i, 5].Value.ToString();
                        rodoviaTarifasOperadoras.Descricao        = workSheet.Cells[i, 6].Value.ToString();
                        rodoviaTarifasOperadoras.CategoryArtespId = Int32.Parse(workSheet.Cells[i, 7].Value.ToString());
                        rodoviaTarifasOperadoras.Nome             = workSheet.Cells[i, 8].Value.ToString();
                        rodoviaTarifasOperadoras.Tarifa           = Convert.ToDecimal(workSheet.Cells[i, 9].Value.ToString());
                        rodoviaTarifasOperadoras.PAssagem90Dias   = workSheet.Cells[i, 10].Value.ToString();
                        listaRodoviasTarifas.Add(rodoviaTarifasOperadoras);
                    }
                }
            }

            return(listaRodoviasTarifas);
        }
        public List <PassagensValePedagio> LerAbaPassagensValePedagio(ArquivosImportados arquivoImportado)
        {
            List <PassagensValePedagio> listapassagensValePedagios = new List <PassagensValePedagio>();

            FileInfo file = new FileInfo(Path.Combine(arquivoImportado.PastaImportacao, arquivoImportado.NomeGerado));

            using (ExcelPackage package = new ExcelPackage(file))
            {
                ExcelWorksheet workSheet = package.Workbook.Worksheets["PASSAGENS VALE-PEDÁGIO"];
                int            totalRows = workSheet.Dimension.Rows;
                int            contRows  = GetLastUsedRow(workSheet);

                for (int i = 2; i <= contRows; i++)
                {
                    if (!String.IsNullOrEmpty(workSheet.Cells[i, 1].Value.ToString()))
                    {
                        string montarData = workSheet.Cells[i, 6].Value.ToString() + " " + workSheet.Cells[i, 7].Value.ToString();

                        PassagensValePedagio passagensValePedagio = new PassagensValePedagio();
                        passagensValePedagio.Placa              = workSheet.Cells[i, 1].Value.ToString();
                        passagensValePedagio.Tag                = workSheet.Cells[i, 2].Value.ToString();
                        passagensValePedagio.Prefixo            = workSheet.Cells[i, 3].Value.ToString();
                        passagensValePedagio.Marca              = workSheet.Cells[i, 4].Value.ToString();
                        passagensValePedagio.Categ              = workSheet.Cells[i, 5].Value.ToString();
                        passagensValePedagio.Data               = Convert.ToDateTime(workSheet.Cells[i, 6].Value.ToString());
                        passagensValePedagio.Hora               = Convert.ToDateTime(montarData);
                        passagensValePedagio.Rodovia            = workSheet.Cells[i, 8].Value.ToString();
                        passagensValePedagio.Praca              = workSheet.Cells[i, 9].Value.ToString();
                        passagensValePedagio.Valor              = Convert.ToDecimal(workSheet.Cells[i, 10].Value.ToString());
                        passagensValePedagio.Viagem             = workSheet.Cells[i, 11].Value.ToString();
                        passagensValePedagio.Embarcador         = workSheet.Cells[i, 12].Value.ToString();
                        passagensValePedagio.Cnpj               = workSheet.Cells[i, 13].Value.ToString();
                        passagensValePedagio.ArquivoImportadoId = arquivoImportado.ArquivoImportadoId;
                        listapassagensValePedagios.Add(passagensValePedagio);
                    }
                }
            }

            return(listapassagensValePedagios);
        }
        public List <Creditos> LerAbaCreditos(ArquivosImportados arquivoImportado)
        {
            List <Creditos> listaCreditos = new List <Creditos>();

            FileInfo file = new FileInfo(Path.Combine(arquivoImportado.PastaImportacao, arquivoImportado.NomeGerado));

            using (ExcelPackage package = new ExcelPackage(file))
            {
                ExcelWorksheet workSheet = package.Workbook.Worksheets["CRÉDITOS"];
                int            totalRows = workSheet.Dimension.Rows;
                int            contRows  = GetLastUsedRow(workSheet);

                for (int i = 2; i <= contRows; i++)
                {
                    if (!String.IsNullOrEmpty(workSheet.Cells[i, 1].Value.ToString()))
                    {
                        string montarData = workSheet.Cells[i, 3].Value.ToString() + " " + workSheet.Cells[i, 4].Value.ToString();

                        Creditos credito = new Creditos();
                        credito.Placa              = workSheet.Cells[i, 1].Value.ToString();
                        credito.Tag                = workSheet.Cells[i, 2].Value.ToString();
                        credito.Data               = Convert.ToDateTime(workSheet.Cells[i, 3].Value.ToString());
                        credito.Hora               = Convert.ToDateTime(montarData);
                        credito.Descricao          = workSheet.Cells[i, 5].Value.ToString();
                        credito.Viagem             = workSheet.Cells[i, 6].Value.ToString();
                        credito.Praca              = workSheet.Cells[i, 7].Value.ToString();
                        credito.Valor              = Convert.ToDecimal(workSheet.Cells[i, 8].Value.ToString());
                        credito.Embarcador         = workSheet.Cells[i, 9].Value.ToString();
                        credito.Cnpj               = workSheet.Cells[i, 10].Value.ToString();
                        credito.ArquivoImportadoId = arquivoImportado.ArquivoImportadoId;
                        listaCreditos.Add(credito);
                    }
                }
            }

            return(listaCreditos);
        }
        public async Task <IActionResult> EnviarArquivo(List <IFormFile> arquivos)
        {
            ViewBag.Carregamento = "Carregando";

            var arquivoImportado = new ArquivosImportados();
            int _contagem        = 0;

            long tamanhoArquivos = arquivos.Sum(f => f.Length);
            // caminho completo do arquivo na localização temporária
            var caminhoArquivo = Path.GetTempFileName();

            // processa os arquivo enviados
            //percorre a lista de arquivos selecionados
            foreach (var arquivo in arquivos)
            {
                //verifica se existem arquivos
                if (arquivo == null || arquivo.Length == 0)
                {
                    //retorna a viewdata com erro
                    ViewData["Erro"] = "Error: Arquivo(s) não selecionado(s)";
                    return(View(ViewData));
                }
                // < define a pasta onde vamos salvar os arquivos >
                string pasta = "Arquivos_Usuario";
                // Define um nome para o arquivo enviado incluindo o sufixo obtido de milesegundos
                string nomeArquivo = "Passagens_" + DateTime.Now.Millisecond.ToString();
                //verifica qual o tipo de arquivo : xlsx, xls ou tmp
                if (arquivo.FileName.Contains(".xlsx"))
                {
                    nomeArquivo += ".xlsx";
                }
                else if (arquivo.FileName.Contains(".xls"))
                {
                    nomeArquivo += ".xls";
                }
                else
                {
                    nomeArquivo += ".tmp";
                }
                //< obtém o caminho físico da pasta wwwroot >
                string caminho_WebRoot = _appEnvironment.WebRootPath;
                // monta o caminho onde vamos salvar o arquivo :
                // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos
                string caminhoDestinoArquivo = caminho_WebRoot + "\\" + pasta + "\\";
                // incluir a pasta Recebidos e o nome do arquivo enviado :
                // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos\
                string caminhoDestinoArquivoOriginal = caminhoDestinoArquivo + "\\Recebidos\\" + nomeArquivo;
                string caminhoArquivoServ            = caminhoDestinoArquivo + "\\Recebidos\\";
                //copia o arquivo para o local de destino original
                using (var stream = new FileStream(caminhoDestinoArquivoOriginal, FileMode.Create))
                {
                    await arquivo.CopyToAsync(stream);
                }

                arquivoImportado.NomeOrigem      = arquivo.FileName;
                arquivoImportado.NomeGerado      = nomeArquivo;
                arquivoImportado.PastaImportacao = caminhoArquivoServ;
                arquivoImportado.DataImportacao  = DateTime.Today;
                arquivoImportado.PessoaIdCad     = 1;
                arquivoImportado.PessoaIdEmp     = 1;

                //Salva arquivo
                _competenciaRepository.SalvarArquivoImportado(arquivoImportado);
                //Busca Id arquivo
                arquivoImportado = _competenciaRepository.GetArquivoImportadoId(arquivoImportado.NomeGerado);

                _contagem++;
            }

            List <Passagem> listaPassagens  = new List <Passagem>();
            CompararArquivo compararArquivo = new CompararArquivo();
            //listaPassagens = compararArquivo.CompararArquivos(comparacaoArquivos);



            //PassagensPedagio
            List <PassagensPedagio> listaPassagensPedagio = new List <PassagensPedagio>();

            listaPassagensPedagio = compararArquivo.LerAbaPassagensPedagio(arquivoImportado);

            foreach (PassagensPedagio passagensPedagio in listaPassagensPedagio)
            {
                _competenciaRepository.SalvarPassagensPedagio(passagensPedagio);
            }

            //PassagensValePedagio
            List <PassagensValePedagio> listaPassagensValePedagios = new List <PassagensValePedagio>();

            listaPassagensValePedagios = compararArquivo.LerAbaPassagensValePedagio(arquivoImportado);

            foreach (PassagensValePedagio passagemValePedagio in listaPassagensValePedagios)
            {
                _competenciaRepository.SalvarPassagensValePedagio(passagemValePedagio);
            }

            //Creditos
            List <Creditos> listaCreditos = new List <Creditos>();

            listaCreditos = compararArquivo.LerAbaCreditos(arquivoImportado);

            foreach (Creditos credito in listaCreditos)
            {
                _competenciaRepository.SalvarCreditos(credito);
            }

            return(Redirect("CompararExcelLista"));
        }
 public void SalvarArquivoImportado(ArquivosImportados arquivoImportado)
 {
     _context.ArquivosImportados.Add(arquivoImportado);
     _context.SaveChanges();
 }
        public async Task <IActionResult> EnviarArquivo(List <IFormFile> arquivos)
        {
            ViewBag.Carregamento = "Carregando";

            var arquivoImportado = new ArquivosImportados();
            int _contagem        = 0;

            long tamanhoArquivos = arquivos.Sum(f => f.Length);
            // caminho completo do arquivo na localização temporária
            var caminhoArquivo = Path.GetTempFileName();

            // processa os arquivo enviados
            //percorre a lista de arquivos selecionados
            foreach (var arquivo in arquivos)
            {
                //verifica se existem arquivos
                if (arquivo == null || arquivo.Length == 0)
                {
                    //retorna a viewdata com erro
                    ViewData["Erro"] = "Error: Arquivo(s) não selecionado(s)";
                    return(View(ViewData));
                }
                // < define a pasta onde vamos salvar os arquivos >
                string pasta = "Arquivos_Usuario";
                // Define um nome para o arquivo enviado incluindo o sufixo obtido de milesegundos
                string nomeArquivo = "RodoviaTarifasOp_" + DateTime.Now.Millisecond.ToString();
                //verifica qual o tipo de arquivo : xlsx, xls ou tmp
                if (arquivo.FileName.Contains(".xlsx"))
                {
                    nomeArquivo += ".xlsx";
                }
                else if (arquivo.FileName.Contains(".xls"))
                {
                    nomeArquivo += ".xls";
                }
                else
                {
                    nomeArquivo += ".tmp";
                }
                //< obtém o caminho físico da pasta wwwroot >
                string caminho_WebRoot = _appEnvironment.WebRootPath;
                // monta o caminho onde vamos salvar o arquivo :
                // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos
                string caminhoDestinoArquivo = caminho_WebRoot + "\\" + pasta + "\\";
                // incluir a pasta Recebidos e o nome do arquivo enviado :
                // ~\wwwroot\Arquivos\Arquivos_Usuario\Recebidos\
                string caminhoDestinoArquivoOriginal = caminhoDestinoArquivo + "\\Recebidos\\" + nomeArquivo;
                string caminhoArquivoServ            = caminhoDestinoArquivo + "\\Recebidos\\";
                //copia o arquivo para o local de destino original
                using (var stream = new FileStream(caminhoDestinoArquivoOriginal, FileMode.Create))
                {
                    await arquivo.CopyToAsync(stream);
                }

                arquivoImportado.NomeOrigem      = arquivo.FileName;
                arquivoImportado.NomeGerado      = nomeArquivo;
                arquivoImportado.PastaImportacao = caminhoArquivoServ;
                arquivoImportado.DataImportacao  = DateTime.Today;
                arquivoImportado.PessoaIdCad     = 1;
                arquivoImportado.PessoaIdEmp     = 1;

                _contagem++;
            }

            RodoviaDominio rodoviaDominio = new RodoviaDominio();

            //SALVA TABELA RODOVIA TARIFA FOI DESATIVADO POIS O CLIENTE NÃO SABE OQUE QUER

            /*List<Rodovia> listaRodovias = _rodoviaRepository.RodoviaListar();
             *
             * foreach (Rodovia rodovia in listaRodovias)
             * {
             *
             *  List<RodoviasTarifas> listaRodoviasTarifas = new List<RodoviasTarifas>();
             *  listaRodoviasTarifas = rodoviaDominio.LerExcelRodovia(arquivoImportado, rodovia);
             *
             *  foreach (RodoviasTarifas rodoviasTarifa in listaRodoviasTarifas)
             *  {
             *      _rodoviaRepository.SalvarRodoviaTarifa(rodoviasTarifa);
             *  }
             * }*/

            List <RodoviaTarifasOperadoras> listaRodoviaTarifasOperadoras = new List <RodoviaTarifasOperadoras>();

            listaRodoviaTarifasOperadoras = rodoviaDominio.LerExcelRodoviaTarifasOperadoras(arquivoImportado);

            foreach (RodoviaTarifasOperadoras rodoviaTarifasOperadoras in listaRodoviaTarifasOperadoras)
            {
                _rodoviaRepository.SalvarRodoviaTarifaOperadoras(rodoviaTarifasOperadoras);
            }

            //return Redirect("ListarRodoviasTarifa");
            return(Redirect("ListarRodoviasTarifaOperadoras"));
        }