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); }
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); }
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); } }
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; } }