示例#1
0
        public IActionResult DownloadArquivoSaida(int idFila)
        {
            string pathSaidaAplicacao = string.Empty;
            string arquivoSaida       = string.Empty;

            Models.SessionUsuarioLogado sessionUsuarioLogado = new Models.SessionUsuarioLogado();
            Enriquecimento.Models.SqlServer.Enriquecimento.HistoricoDownload historicoDownload = new Enriquecimento.Models.SqlServer.Enriquecimento.HistoricoDownload();

            Enriquecimento.Models.SqlServer.Enriquecimento.Fila fila = new Enriquecimento.Models.SqlServer.Enriquecimento.Fila();
            fila = Enriquecimento.Service.Fila.RetornarJob((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp, idFila);
            //pathSaidaAplicacao = $"{this._hostingEnvironment.WebRootPath}/";
            pathSaidaAplicacao = fila.CaminhoSaidaAplicacao;
            arquivoSaida       = fila.ArquivoSaida;

            var    provider = new FileExtensionContentTypeProvider();
            string contentType;

            if (!provider.TryGetContentType(pathSaidaAplicacao + arquivoSaida, out contentType))
            {
                contentType = "application/octet-stream";
            }
            byte[] fileBytes = System.IO.File.ReadAllBytes(pathSaidaAplicacao + arquivoSaida);

            //Inserir na tabela HistoricoDownload
            sessionUsuarioLogado             = HttpContext.Session.Get <Models.SessionUsuarioLogado>("UsuarioLogado");
            historicoDownload                = new Enriquecimento.Models.SqlServer.Enriquecimento.HistoricoDownload();
            historicoDownload.ArquivoEntrada = false;
            historicoDownload.ArquivoSaida   = true;
            historicoDownload.Inclusao       = DateTime.Now;
            historicoDownload.IdAcesso       = sessionUsuarioLogado.IdAcesso;
            historicoDownload.IdCliente      = sessionUsuarioLogado.IdCliente;
            historicoDownload.IdFila         = idFila;
            historicoDownload.IdUsuario      = sessionUsuarioLogado.IdUsuario;
            historicoDownload                = Enriquecimento.Service.Fila.InserirDownloadArquivoEntrada((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp,
                                                                                                         historicoDownload);

            return(File(fileBytes, contentType, arquivoSaida));
        }
示例#2
0
        public async Task <IActionResult> UploadFile(List <IFormFile> files)
        {
            string extensaoArquivo      = "";
            string loginCliente         = "";
            string pathEntradaAplicacao = "";
            string pathEntradaBanco     = "";
            string pathSaidaAplicacao   = "";
            string pathSaidaBanco       = "";

            Models.Class.ArquivoTipo    arquivoTipo                  = new Models.Class.ArquivoTipo();
            Models.SessionJobProcessar  sessionJobProcessar          = null;
            Models.SessionUsuarioLogado sessionUsuarioLogado         = null;
            Enriquecimento.Models.SqlServer.Enriquecimento.Fila fila = new Enriquecimento.Models.SqlServer.Enriquecimento.Fila();
            List <Models.Class.ArquivoTipo>       listArquivoTipo    = new List <Models.Class.ArquivoTipo>();
            List <Models.SessionClientes.Cliente> listSessionCliente = new List <Models.SessionClientes.Cliente>();

            try
            {
                ViewBag.MensagemProcessar = "";
                if ((files != null) && (files.Count > 0))
                {
                    foreach (var file in files)
                    {
                        arquivoTipo     = new Models.Class.ArquivoTipo();
                        extensaoArquivo = "";
                        extensaoArquivo = file.FileName;
                        extensaoArquivo = (string.IsNullOrEmpty(extensaoArquivo) == false ? extensaoArquivo : "");
                        if (extensaoArquivo.Contains(".") == true)
                        {
                            extensaoArquivo = Utils.Funcoes.Reverse(extensaoArquivo);
                            extensaoArquivo = extensaoArquivo.Substring(0, extensaoArquivo.IndexOf('.'));
                            extensaoArquivo = Utils.Funcoes.Reverse(extensaoArquivo);
                        }
                        arquivoTipo.Arquivo         = file;
                        arquivoTipo.ExtensaoArquivo = extensaoArquivo;
                        listArquivoTipo.Add(arquivoTipo);
                    }
                    sessionJobProcessar  = HttpContext.Session.Get <Models.SessionJobProcessar>("JobProcessar");
                    sessionUsuarioLogado = HttpContext.Session.Get <Models.SessionUsuarioLogado>("UsuarioLogado");
                    listSessionCliente   = HttpContext.Session.Get <List <Models.SessionClientes.Cliente> >("Clientes");
                    foreach (var item001 in listArquivoTipo)
                    {
                        pathEntradaAplicacao = $"{this._hostingEnvironment.WebRootPath}/";
                        pathEntradaAplicacao = Utils.AppConfiguration.GetAppConfiguration((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp).GetSection("AppConfiguration")["CaminhoEntradaAplicacao"];
                        pathEntradaBanco     = Utils.AppConfiguration.GetAppConfiguration((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp).GetSection("AppConfiguration")["CaminhoEntradaBanco"];
                        pathSaidaAplicacao   = $"{this._hostingEnvironment.WebRootPath}/";
                        pathSaidaAplicacao   = Utils.AppConfiguration.GetAppConfiguration((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp).GetSection("AppConfiguration")["CaminhoSaidaAplicacao"];
                        pathSaidaBanco       = Utils.AppConfiguration.GetAppConfiguration((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp).GetSection("AppConfiguration")["CaminhoSaidaBanco"];
                        if ((item001.ExtensaoArquivo.ToLower().Equals("txt")) || (item001.ExtensaoArquivo.ToUpper().Equals("csv")))
                        {
                            fila           = new Enriquecimento.Models.SqlServer.Enriquecimento.Fila();
                            fila.Inclusao  = DateTime.Now;
                            fila.IdCliente = sessionJobProcessar.IdCliente;
                            loginCliente   = "";
                            var resultCliente = (from t1 in listSessionCliente
                                                 where t1.IdCliente == fila.IdCliente
                                                 select t1).ToList();
                            if ((resultCliente != null) && (resultCliente.Count > 0))
                            {
                                loginCliente = resultCliente.First().NomeCliente;
                            }
                            fila.LoginCliente            = loginCliente;
                            fila.IdUsuario               = sessionUsuarioLogado.IdUsuario;
                            fila.LoginUsuario            = sessionUsuarioLogado.LoginUsuario;
                            fila.IdAcesso                = sessionUsuarioLogado.IdAcesso;
                            fila.NomeJob                 = Enriquecimento.Service.Fila.GerarNomeJob(item001.Arquivo.FileName);
                            fila.NomeTabela              = Enriquecimento.Service.Fila.GerarNomeTabela(item001.Arquivo.FileName, fila.Inclusao);
                            fila.NomeArquivo             = fila.NomeTabela;
                            fila.CaminhoEntradaAplicacao = pathEntradaAplicacao;
                            fila.CaminhoEntradaBanco     = pathEntradaBanco;
                            fila.ArquivoEntrada          = fila.NomeTabela + "_ORIGINAL" + "." + item001.ExtensaoArquivo.ToLower();
                            fila.ArquivoEntradaOriginal  = item001.Arquivo.FileName;
                            fila.CaminhoSaidaAplicacao   = pathSaidaAplicacao;
                            fila.CaminhoSaidaBanco       = pathSaidaBanco;
                            fila.ArquivoSaida            = fila.NomeTabela + "_PROCESSADO" + "." + "zip";
                            //Fazer o upload do arquivo
                            using (var stream = new FileStream(fila.CaminhoEntradaAplicacao + fila.ArquivoEntrada, FileMode.Create))
                            {
                                await item001.Arquivo.CopyToAsync(stream);
                            }
                            fila.IdStatusJob                = (long)Enriquecimento.Models.Enumeradores.StatusJob.EmFila;
                            fila.IdProcedimento             = sessionJobProcessar.IdProcedimento;
                            fila.IdLayoutEntrada            = sessionJobProcessar.IdLayoutEntrada;
                            fila.IdLayoutSaida              = sessionJobProcessar.IdLayoutSaida;
                            fila.QuantidadeRegistrosEntrada = 0;
                            fila.QuantidadeRegistrosSaida   = 0;
                            fila.Finalizacao                = null;
                            //Inserir o Job na Fila
                            fila = await Enriquecimento.Service.Fila.InserirJob((int)Enriquecimento.Models.Enumeradores.OrigemAppsettingsJson.WebApp, fila);
                        }
                        else
                        {
                            ViewBag.MensagemProcessar = "Só é aceito arquivo com extesão txt ou csv.";
                        }
                    }
                }
                else
                {
                    ViewBag.MensagemProcessar = "Selecione um arquivo para ser processado.";
                }
            }
            catch (System.Exception ex)
            {
                ViewBag.MensagemProcessar = ex.Message.ToString();
            }
            finally
            { }
            return(this.Ok());
        }