private void AdicionarPagina(int loteId, ImagemConta imagem, Documento documento)
        {
            var nomeArquivo = string.Format(
                "{0}_{1}_{2}",
                imagem.TipoDocumentoId,
                Guid.NewGuid(),
                imagem.ObterTipoArquivo());

            Directories.CreateIfNotExist(
                Path.Combine(Configuracao.CaminhoDePacotesRecebidos, loteId.ToString(), "extraidos"));

            var path = new[]
            {
                Configuracao.CaminhoDePacotesRecebidos,
                loteId.ToString(),
                "extraidos",
                nomeArquivo
            };

            var caminhoImagem = Path.Combine(path);

            if (imagem.FormatoBase64 == "NOK")
            {
                return;
            }

            this.fileSystem.CreateFileFromBase64(caminhoImagem, imagem.ObterBase64());

            ///// #17888 - verifica se arquivo já está com DPI no header, insere/altera se não estiver.
            this.DefinirResolucao(caminhoImagem);

            //// TODO: conversao para JPG compactado
            ////var arquivoParaPostar = caminhoImagem;
            ////if (this.DeveConverterParaJpg(caminhoImagem, documento.TipoDocumento))
            ////{
            ////    arquivoParaPostar = this.converterImagem
            ////        .ParaJpeg(imagemDocumento.Caminho, RemotePath.GetExtension(imagemDocumento.Caminho));
            ////}

            var pagina = this.paginaFabrica.Criar(documento, imagem.Face, caminhoImagem);

            this.paginaRepositorio.Salvar(pagina);

            this.InserirValorReconhecido(imagem, pagina);

            documento.Paginas.Add(pagina);

            this.postaArquivoFileTransferServico.PostarPagina(pagina, pagina.CaminhoCompletoDoArquivo);
        }
Esempio n. 2
0
        private void CriarArquivoDeProposta(int loteId, ImagemConta imagemConta)
        {
            var jsonConteudo = JsonConvert.SerializeObject(imagemConta, Formatting.Indented);

            var caminho = Path.Combine(Configuracao.CaminhoDePacotesRecebidos, loteId.ToString());

            if (Directory.Exists(caminho) == false)
            {
                Directory.CreateDirectory(caminho);
            }

            var jsonArquivo = imagemConta.Cpf + "_" + Guid.NewGuid() + ".json";

            var arquivo = Path.Combine(caminho, jsonArquivo);

            this.fileSystem.CreateFile(arquivo, jsonConteudo);
        }
Esempio n. 3
0
        public Processo Iniciar(ImagemConta proposta)
        {
            var pacoteDoDia = this.pacoteProcessadoFactory.ObterDoDia();

            var pacote = this.pacoteFactory.Criar();

            var lote = Lote.CriarNovo(pacote, LoteStatus.SetaClassifier, pacoteDoDia);

            lote.Identificacao = proposta.Cpf;

            var processo = Processo.CriarNovo(lote);

            this.pacoteRepositorio.Salvar(pacote);
            this.loteRepositorio.Salvar(lote);
            this.processoRepositorio.Salvar(processo);

            return(processo);
        }
        private void InserirValorReconhecido(ImagemConta imagem, Pagina pagina)
        {
            try
            {
                var valorReconhecido = new ValorReconhecido
                {
                    Pagina        = pagina,
                    TemplateName  = "fulltext",
                    CampoTemplate = "fulltext",
                    Value         = imagem.Ocr
                };

                this.valorReconhecidoRepositorio.Salvar(valorReconhecido);
            }
            catch (Exception exception)
            {
                Log.Application.Error(
                    "Erro ao processar arquivo(s) de OCR.",
                    exception);
            }
        }
Esempio n. 5
0
        public void Receber(int loteId, ImagemConta imagemConta)
        {
            if (loteId == 0)
            {
                throw new NullReferenceException("Informe o lote para recepção das imagens");
            }

            if (imagemConta.NaoTemConteudo())
            {
                throw new NullReferenceException("Não foi possível importar proposta. Proposta vazia ou nula.");
            }

            if (string.IsNullOrEmpty(imagemConta.Cpf))
            {
                throw new Exception("Não foi possível importar proposta. Não foi encontrado o número Cpf");
            }

            if (string.IsNullOrEmpty(imagemConta.FormatoBase64))
            {
                throw new Exception("Não foi possível importar proposta. Não foram encontrados os arquivos da conta no campo FormatoBase64");
            }

            if (imagemConta.TipoDocumentoId == 0)
            {
                throw new Exception("Não foi possível importar proposta. TipoDocumentoId não é válido");
            }

            try
            {
                this.CriarArquivoDeProposta(loteId, imagemConta);
            }
            catch (Exception exception)
            {
                Log.Application.Error(exception);
                throw;
            }
        }