示例#1
0
        public string PostarArquivo(ArquivoDTO dto, int id)
        {
            string mensagem = "";

            for (int i = 0; i < dto.NumeroNotasFiscais; i++)
            {
                var novaNota = new NotaFiscal();
                novaNota.EmpresaId = id;
                var respota = _notasFiscaisRepositorio.PostarNotaFiscal(novaNota);
                if (!respota.sucesso)
                {
                    mensagem = mensagem + respota.mensagem + "/n";
                }
            }

            for (int i = 0; i < dto.NumeroDebitos; i++)
            {
                var novoDebito = new Debito();
                novoDebito.EmpresaId = id;
                var resposta = _debitoRepositorio.PostarDebito(novoDebito);
                if (!resposta.sucesso)
                {
                    mensagem = mensagem + resposta.mensagem + "/n";
                }
            }
            return(mensagem);
        }
示例#2
0
        public bool SalvarFoto(ArquivoDTO arquivoModel, int posicao)
        {
            try
            {
                Arquivo arquivo = new Arquivo()
                {
                    ContentType           = arquivoModel.ContentType,
                    Posicao               = posicao,
                    Nome                  = "album_foto_" + posicao,
                    CategoriaArquivoId    = (int)CategoriaArquivoEnum.FOTO,
                    SubCategoriaArquivoId = (int)SubCategoriaArquivoEnum.FOTO_ALBUM,
                    NomeSalvar            = arquivoModel.NomeSalvar,
                    Tamanho               = "500x500",
                    ArquivoArray          = arquivoModel.ArquivoArray
                };

                ArquivoHelper.SalvarArquivo(arquivo, _imagePath);

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#3
0
        private ActionResult Upload(bool isRascunho)
        {
            try
            {
                if (Request.Files.Count == 0)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                var file    = Request.Files[0];
                var guid    = Guid.NewGuid();
                var arquivo = new ArquivoDTO
                {
                    ContentType = file.ContentType,
                    TamanhoKb   = file.ContentLength / 1000f,
                    Guid        = guid,
                    Nome        = file.FileName,
                    IsRascunho  = isRascunho,
                    Extensao    = Path.GetExtension(file.FileName),
                    DataUpload  = DateTime.Now,
                    Arquivo     = this.ObterBytesArquivo(file),
                    UsuarioID   = base.UsuarioID
                };
                this._service.UploadArquivo(arquivo);
                return(Json(new { guid = guid.ToString("D") }));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError));
            }
        }
示例#4
0
        public static IEnumerable <ArquivoDTO> BuscarArquivosImportados(int ano)
        {
            var origem   = String.Format(@"{0}\{1}\IMPORTADOS", _arquivoServico.CaminhoDiretorio, ano);
            var dir      = new DirectoryInfo(origem);
            var arquivos = new List <ArquivoDTO>();

            if (dir.Exists)
            {
                var fileTxt  = dir.GetFiles("*.txt");
                var filesPdf = dir.GetFiles("*.pdf");

                var files = filesPdf.Concat(fileTxt).ToList();

                foreach (var file in files)
                {
                    var arquivo = new ArquivoDTO();
                    arquivo.CaminhoArquivoBanco = String.Format(@"\{0}\IMPORTADOS", ano);
                    arquivo.CaminhoArquivo      = file.DirectoryName + @"\" + file.Name;
                    arquivo.NomeArquivo         = file.Name;
                    arquivo.ExtensaoArquivo     = file.Extension;

                    arquivos.Add(arquivo);
                }
            }

            return(arquivos);
        }
示例#5
0
        public void SplitPdfIndividual(ArquivoDTO arquivoImportado, LoteDTO lote)
        {
            var    parametro = (lote.TipoContribuinte == TipoContribuinte.FuncionarioCassi ? Funcionarios : Prestadores);
            string caminho   = string.Format(@"{0}\{1}\{2}\{3}", CaminhoDiretorio, lote.AnoExercicio, Processados, parametro);

            using (var reader = new PdfReader(arquivoImportado.CaminhoArquivo))
            {
                int total = reader.NumberOfPages;

                for (int pagina = 1; pagina <= total; pagina++)
                {
                    var textoPag = PdfTextExtractor.GetTextFromPage(reader, pagina,
                                                                    new SimpleTextExtractionStrategy());

                    var cpfsCnpjs = IdentificarCpfCnpjPdf(textoPag);

                    if (cpfsCnpjs.Count() < 0)
                    {
                        continue;
                    }

                    lock (lote.ContribuinteIndividual)
                    {
                        foreach (var cpfCnpj in cpfsCnpjs)
                        {
                            if (string.IsNullOrEmpty(lote.ContribuinteIndividual.CpfCnpj))
                            {
                                lote.ContribuinteIndividual.CpfCnpj = cpfCnpj;
                                lote.ContribuinteIndividual.Arquivo.CaminhoArquivo      = caminho;
                                lote.ContribuinteIndividual.Arquivo.CaminhoArquivoBanco = String.Format(@"\{0}\{1}\{2}", lote.AnoExercicio, Processados, parametro);

                                if (GerarArquivo(reader, lote.ContribuinteIndividual, pagina))
                                {
                                    lote.ContribuinteIndividual.Status       = StatusContribuinte.Sucesso;
                                    lote.ContribuinteIndividual.TipoSituacao = TipoSituacao.Processado;
                                }
                            }
                            else if (lote.ContribuinteIndividual.CpfCnpj == cpfCnpj)
                            {
                                if (GerarArquivo(reader, lote.ContribuinteIndividual, pagina))
                                {
                                    lote.ContribuinteIndividual.Status       = StatusContribuinte.Sucesso;
                                    lote.ContribuinteIndividual.TipoSituacao = TipoSituacao.Processado;
                                }
                            }
                            else
                            {
                                throw new NegocioException("Rotina indicada para geração individual deve possuir arquivo que contenha apenas um CPF/CNPJ.");
                            }
                        }
                    }
                }
            }
        }
示例#6
0
        public GedDocumentoDTO selectDocumentoId(GedDocumentoDTO documento)
        {
            try
            {
                using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
                {
                    IDAL <GedDocumentoDTO> documentoDAL = new NHibernateDAL <GedDocumentoDTO>(session);
                    GedDocumentoDTO        resultado    = documentoDAL.selectId <GedDocumentoDTO>((int)documento.Id);

                    if (resultado != null)
                    {
                        IDAL <GedVersaoDocumentoDTO> versaoDocumentoDAL = new NHibernateDAL <GedVersaoDocumentoDTO>(session);
                        GedVersaoDocumentoDTO        versaoDoc          = new GedVersaoDocumentoDTO();
                        versaoDoc.IdDocumento = documento.Id;
                        IList <GedVersaoDocumentoDTO> listaVersaoDoc = versaoDocumentoDAL.select(versaoDoc);
                        versaoDoc = listaVersaoDoc.Last();

                        FileInfo     fi = new FileInfo(versaoDoc.Caminho);
                        FileStream   fs = fi.OpenRead();
                        MemoryStream ms = new MemoryStream((int)fs.Length);
                        fs.CopyTo(ms);
                        fs.Close();
                        ms.Position = 0;

                        ArquivoDTO arquivo = new ArquivoDTO();
                        arquivo.fileInfo     = fi;
                        arquivo.memoryStream = ms;

                        if (resultado.Assinado != null && resultado.Assinado == "S")
                        {
                            FileInfo     fiAssinatura = new FileInfo(arquivo.caminhoServidorAssinatura);
                            FileStream   fsAssinatura = fiAssinatura.OpenRead();
                            MemoryStream msAssinatura = new MemoryStream((int)fsAssinatura.Length);
                            fsAssinatura.CopyTo(msAssinatura);
                            fsAssinatura.Close();
                            msAssinatura.Position = 0;

                            arquivo.streamAssinatura = msAssinatura;
                        }

                        resultado.arquivo = arquivo;

                        session.Flush();
                    }
                    return(resultado);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <IActionResult> DownloadArquivo(ArquivoDTO arquivoDTO)
        {
            try
            {
                var usuarioId = int.Parse((this.User.Identity.Name).Split(',')[0]);
                var empresaId = int.Parse((this.User.Identity.Name).Split(',')[1]);
                var menu      = "Documentos - Download";

                // Permissão
                var user_proprietario = await _serviceEmpresa.getEmpresaById(empresaId);

                var isPermissao = false;

                if (user_proprietario.EmpresaProprietaria != 0)
                {
                    isPermissao = _serviceUsuario.ValidaAcessoUsuarioMenu(usuarioId, empresaId, menu);
                }
                else
                {
                    isPermissao = true;
                }

                if (isPermissao)
                {
                    string tela = this.ControllerContext.RouteData.Values["action"].ToString();
                    this._auditoria.cadastrar(tela, this.User.Identity.Name, arquivoDTO);

                    var memory = new MemoryStream();
                    using (var fileStream = new FileStream(arquivoDTO.CaminhoSalvo, FileMode.Open))
                    {
                        await fileStream.CopyToAsync(memory);
                    }

                    memory.Position = 0;

                    return(File(memory, GetMimeType(arquivoDTO.Extensao), arquivoDTO.Nome));
                }
                else
                {
                    return(StatusCode(403, "Usuário sem permissão de acesso ao menu " + menu));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
示例#8
0
        public void SplitPdf(ArquivoDTO arquivoImportado, LoteDTO lote)
        {
            var    parametro = (lote.TipoContribuinte == TipoContribuinte.FuncionarioCassi ? Funcionarios : Prestadores);
            string caminho   = string.Format(@"{0}\{1}\{2}\{3}", CaminhoDiretorio, lote.AnoExercicio, Processados, parametro);

            using (var reader = new PdfReader(arquivoImportado.CaminhoArquivo))
            {
                int total = reader.NumberOfPages;

                for (int pagina = 1; pagina <= total; pagina++)
                {
                    var textoPag = PdfTextExtractor.GetTextFromPage(reader, pagina, new SimpleTextExtractionStrategy());

                    var cpfsCnpjs = IdentificarCpfCnpjPdf(textoPag);

                    if (cpfsCnpjs.Count() < 0)
                    {
                        continue;
                    }

                    ContribuinteDTO contribuinte = null;

                    foreach (var cpfCnpj in cpfsCnpjs)
                    {
                        contribuinte = lote.ContribuintesArquivoTxt.FirstOrDefault(c => c.CpfCnpj == cpfCnpj);
                        if (contribuinte != null)
                        {
                            break;
                        }
                    }

                    if (contribuinte != null)
                    {
                        //Contribuinte encontrado no txt e pdf!
                        contribuinte.Arquivo.CaminhoArquivo      = caminho;
                        contribuinte.Arquivo.CaminhoArquivoBanco = String.Format(@"\{0}\{1}\{2}", lote.AnoExercicio, Processados, parametro);

                        if (GerarArquivo(reader, contribuinte, pagina))
                        {
                            contribuinte.Status       = StatusContribuinte.Sucesso;
                            contribuinte.TipoSituacao = TipoSituacao.Processado;
                        }
                    }
                }
            }
        }
        public IActionResult EnviarArquivoLixeira(ArquivoDTO arquivoDTO)
        {
            try
            {
                string tela = this.ControllerContext.RouteData.Values["action"].ToString();
                this._auditoria.cadastrar(tela, this.User.Identity.Name, arquivoDTO);

                var arq = _mapper.Map <Arquivo>(arquivoDTO);
                this.gedService.EnviarArquivoLixeira(arq);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
示例#10
0
        public IActionResult PostarArquivo([FromForm] IFormFile file, [FromRoute] int id)
        {
            if (file == null || file.Length == 0)
            {
                return(Content("Arquivo não selecionado"));
            }

            var diretorio = Path.Combine(
                Directory.GetCurrentDirectory(), "wwwroot",
                file.FileName);

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

            string jsonTexto = "";

            try
            {
                using (StreamReader sr = new StreamReader(diretorio))
                {
                    jsonTexto = sr.ReadToEnd();
                }
            }
            catch (InvalidOperationException)
            {
                return(BadRequest());
            }

            var objeto = new ArquivoDTO();

            try
            {
                objeto = JsonConvert.DeserializeObject <ArquivoDTO>(jsonTexto);
            }
            catch (JsonReaderException)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }

            _empresaRepositorio.PostarArquivo(objeto, id);

            return(Ok());
        }
示例#11
0
        public async Task <IActionResult> ExcluirArquivos(ArquivoDTO arquivoDTO)
        {
            try
            {
                var usuarioId = int.Parse((this.User.Identity.Name).Split(',')[0]);
                var empresaId = int.Parse((this.User.Identity.Name).Split(',')[1]);
                var menu      = "Documentos - Excluir";

                // Permissão
                var user_proprietario = await _serviceEmpresa.getEmpresaById(empresaId);

                var isPermissao = false;

                if (user_proprietario.EmpresaProprietaria != 0)
                {
                    isPermissao = _serviceUsuario.ValidaAcessoUsuarioMenu(usuarioId, empresaId, menu);
                }
                else
                {
                    isPermissao = true;
                }

                if (isPermissao)
                {
                    // LOG
                    string tela = this.ControllerContext.RouteData.Values["action"].ToString();
                    this._auditoria.cadastrar(tela, this.User.Identity.Name, arquivoDTO);


                    this.gedService.excluirArquivos(arquivoDTO);

                    return(Ok());
                }
                else
                {
                    return(StatusCode(403, "Usuário sem permissão de exclusão " + menu));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
示例#12
0
        public void UploadArquivo(ArquivoDTO arquivo)
        {
            #region SQL +
            const string sql = @"
INSERT INTO MDS.Arquivo ([Guid], Nome, Extensao, ContentType, TamanhoKb, Arquivo, IsRascunho, DataUpload, UsuarioID)
VALUES (@Guid, @Nome, @Extensao, @ContentType, @TamanhoKb, @Arquivo, @IsRascunho, @DataUpload, @UsuarioID)";
            #endregion
            base.Repository.ExecuteScalar <string>(sql, p => {
                p.AddWithValue("@Guid", arquivo.Guid);
                p.AddWithValue("@Nome", arquivo.Nome);
                p.AddWithValue("@Extensao", arquivo.Extensao);
                p.AddWithValue("@ContentType", arquivo.ContentType);
                p.AddWithValue("@TamanhoKb", arquivo.TamanhoKb);
                p.AddWithValue("@Arquivo", arquivo.Arquivo);
                p.AddWithValue("@IsRascunho", arquivo.IsRascunho);
                p.AddWithValue("@DataUpload", arquivo.DataUpload);
                p.AddWithValue("@UsuarioID", arquivo.UsuarioID);
            });
        }
        private bool verificarAssinatura(ArquivoDTO arquivo)
        {
            try
            {
                XmlDocument xmlDocument = new XmlDocument();
                xmlDocument.Load(arquivo.streamAssinatura);

                SignedXml signedXml = new SignedXml();

                XmlNodeList nodeList = xmlDocument.GetElementsByTagName("Signature");

                signedXml.LoadXml((XmlElement)nodeList[0]);

                return(signedXml.CheckSignature());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ArquivoDTO carregarArquivo()
        {
            try
            {
                FileInfo     fi = new FileInfo(uriImagem);
                FileStream   fs = fi.OpenRead();
                MemoryStream ms = new MemoryStream((int)fs.Length);
                fs.CopyTo(ms);
                fs.Close();

                ArquivoDTO arquivo = new ArquivoDTO();
                arquivo.fileInfo     = fi;
                arquivo.memoryStream = ms;

                return(arquivo);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#15
0
 private void salvarArquivo(ArquivoDTO arquivo)
 {
     try
     {
         using (FileStream fs = File.Create(arquivo.caminhoServidor))
         {
             fs.Write(arquivo.memoryStream.GetBuffer(), 0, (int)arquivo.memoryStream.Length);
         }
         if (arquivo.streamAssinatura != null && arquivo.streamAssinatura.Length > 0)
         {
             using (FileStream fs = File.Create(arquivo.caminhoServidorAssinatura))
             {
                 fs.Write(arquivo.streamAssinatura.GetBuffer(), 0, (int)arquivo.streamAssinatura.Length);
             }
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        private void assinarArquivo(ArquivoDTO arquivo)
        {
            try
            {
                int index = assinado - 1;
                X509Certificate2         certificado = listaCertificados.ElementAt(index);
                RSACryptoServiceProvider crypto      = (RSACryptoServiceProvider)certificado.PrivateKey;

                SignedXml signedXml = new SignedXml();
                signedXml.SigningKey = certificado.PrivateKey;

                Reference reference = new Reference();
                reference.Uri = uriImagem;
                signedXml.AddReference(reference);

                KeyInfo     keyInfo     = new KeyInfo();
                RSAKeyValue rsaKeyValue = new RSAKeyValue(crypto);
                keyInfo.AddClause(rsaKeyValue);
                signedXml.KeyInfo = keyInfo;

                signedXml.ComputeSignature();
                XmlElement signatureXml = signedXml.GetXml();

                arquivo.streamAssinatura = new MemoryStream();
                MemoryStream msAssinatura = new MemoryStream();
                using (XmlTextWriter signatureWriter = new XmlTextWriter(msAssinatura, new UTF8Encoding(false)))
                {
                    signatureWriter.Formatting = Formatting.Indented;
                    signatureXml.WriteTo(signatureWriter);
                    signatureWriter.Flush();

                    msAssinatura.Position = 0;
                    msAssinatura.CopyTo(arquivo.streamAssinatura);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Erro");
            }
        }
        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            try
            {
                ServicoSpedClient gedService = new ServicoSpedClient();
                documentoSelected = gedService.gerarSped(
                    dpDataInicio.Text,
                    dpDataFim.Text,
                    cbVersaoLayout.SelectedIndex,
                    cbFinalidadeArquivo.SelectedIndex,
                    cbPerfilApresentacao.SelectedIndex,
                    new ERPViewModelBase().Empresa.Id,
                    cbInventario.SelectedIndex,
                    1
                    );

                CaminhoArquivo = salvaArquivoTempLocal(documentoSelected);

                //System.Diagnostics.Process.Start(CaminhoArquivo); - se quiser abrir no editor padrão do windows

                PreviewPrincipal janela = new PreviewPrincipal();
                Window           window = new Window()
                {
                    Title                 = "Preview",
                    ShowInTaskbar         = false,
                    Topmost               = false,
                    ResizeMode            = ResizeMode.NoResize,
                    Width                 = 1010,
                    Height                = 740,
                    WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen
                };
                window.Content = janela;
                JanelaPreview  = window;
                window.ShowDialog();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#18
0
        private string salvaArquivoTempLocal(ArquivoDTO arquivo)
        {
            try
            {
                FileInfo fi          = arquivo.fileInfo;
                string   caminhoTemp = System.IO.Path.GetTempPath() + arquivo.fileInfo.Name;

                if (!File.Exists(caminhoTemp))
                {
                    using (FileStream fs = new FileStream(caminhoTemp, FileMode.Create, FileAccess.ReadWrite))
                    {
                        arquivo.memoryStream.WriteTo(fs);
                        fs.Close();
                    }
                }
                return(caminhoTemp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#19
0
        private string SalvaArquivoTempLocal(ArquivoDTO pArquivo)
        {
            try
            {
                string caminhoTemp = System.IO.Path.GetTempPath() + "VendasPeriodoTemp.txt";

                if (!System.IO.File.Exists(caminhoTemp))
                {
                    using (System.IO.FileStream fs = new System.IO.FileStream(caminhoTemp, System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite))
                    {
                        //pArquivo.memoryStream.WriteTo(fs);
                        pArquivo.memoryStream.ToString();
                        fs.Close();
                    }
                }
                return(caminhoTemp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#20
0
        public static void Rotina(ArquivoDTO arquivoImportado, LoteDTO lote)
        {
            if (File.Exists(arquivoImportado.CaminhoArquivo))
            {
                try
                {
                    if (lote.Individual)
                    {
                        _arquivoServico.SplitPdfIndividual(arquivoImportado, lote);
                    }
                    else
                    {
                        _arquivoServico.SplitPdf(arquivoImportado, lote);
                    }

                    Console.WriteLine("Sucesso na TASK SPLIT PDF ID:" + Task.CurrentId);
                    Debug.WriteLine("Sucesso na TASK SPLIT PDF ID:" + Task.CurrentId);
                }
                catch (NegocioException e)
                {
                    throw new NegocioException(e.Message, e.InnerException);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Houve falha na TASK SPLIT PDF ID:" + Task.CurrentId);
                    Debug.WriteLine("Houve falha na TASK SPLIT PDF ID:" + Task.CurrentId);

                    var msg = string.Format("Falha no processamento - TASK ID:{0} SPLIT PDF - {1}", Task.CurrentId, e.Message);
                    throw new Exception(msg, e.InnerException);
                }
            }
            else
            {
                var msg = string.Format("Arquivo {0} NÃO EXISTI!", arquivoImportado.CaminhoArquivo);
                Console.WriteLine(msg);
                Debug.WriteLine(msg);
            }
        }
示例#21
0
        public bool VerificaSeArquivoFoiDuplicado(ArquivoDTO arquivo, IEnumerable <ArquivoDTO> arquivos)
        {
            var files = arquivos.Where(a => a.Bytes != null).ToList();

            if (files.Count > 0)
            {
                var bytes = File.ReadAllBytes(arquivo.CaminhoArquivo);

                if (files.Any(f => f.Bytes.SequenceEqual(bytes)))
                {
                    return(true);
                }

                arquivo.Bytes = bytes;
            }
            else
            {
                arquivo.Bytes = File.ReadAllBytes(arquivo.CaminhoArquivo);

                return(false);
            }

            return(false);
        }
示例#22
0
        public void excluirArquivos(ArquivoDTO arquivoDTO)
        {
            var excluir = new ExcluirArquivo(this._context);

            excluir.DeletarArquivo(arquivoDTO);
        }
示例#23
0
 public void UploadArquivo(ArquivoDTO arquivo)
 {
     this._repository.UploadArquivo(arquivo);
 }