public ResultadoBatimentoDocumento ValidarNumeroDocumentoIdentificacao( ResultadoBatimentoDocumento resultadoBatimento, Documento documento) { if (documento.Indexacao == null || documento.Indexacao.Any(x => x.Campo == null) || resultadoBatimento.Campos.Any(x => x.Indexacao == null || x.Indexacao.Campo == null)) { return(resultadoBatimento); } var valorCpf = (from valor in documento.Indexacao where valor.Campo.ReferenciaArquivo == Campo.ReferenciaDeArquivoCpf select valor.SegundoValor).FirstOrDefault(); foreach (var campoBatido in resultadoBatimento.Campos) { if (campoBatido.Indexacao.Campo.ReferenciaArquivo == Campo.ReferenciaDeArquivoNumeroDocumentoIdentificacao) { var numeroDi = campoBatido.Indexacao.SegundoValor; if (valorCpf == numeroDi) { campoBatido.Batido = false; } break; } } return(resultadoBatimento); }
private ResultadoBatimentoDocumento RealizarBatimentoPorCampoNaoBatido( ImagemReconhecida imagemReconhecida, ResultadoBatimentoDocumento resultadoBatimento, List <CampoBatido> camposNaoBatidos) { foreach (var campoNaoBatido in camposNaoBatidos) { var batimentoCampo = this.batimentoCampoFactory.Criar(campoNaoBatido.Indexacao); var resultadoDoCampo = batimentoCampo.Entre(campoNaoBatido.Indexacao, imagemReconhecida.Palavras); resultadoBatimento.AdicionarOuEditar(resultadoDoCampo); } return(resultadoBatimento); }
public ResultadoBatimentoDocumento Entre(Documento documento, ImagemReconhecida imagemReconhecida) { var indexacoesMapeadas = this.indexacaoMapeada.ComValoresReconhecidos( documento.Indexacao.ToList(), imagemReconhecida.ValoresReconhecidos); var resultadoBatimento = new ResultadoBatimentoDocumento(); var batimento = IoC.Current.Resolve(typeof(TBatimentoIndexacaoMapeada)); var batimentoResidencia = ((IBatimentoIndexacaoMapeada)batimento) .ProximaTentativa(IoC.Current.Resolve <ComprovanteResidenciaConsultaCepBatimento>()); ////Caso haja a necessidade de incluir mais classes de batimento pode-se hierarquizar como abaixo: //// var batimentoRg = ((IBatimentoIndexacaoMapeada)batimento) //// .ProximaTentativa(IoC.Current.Resolve<RgBatimento>()); //// //// var batimentoRgReceita = ((IBatimentoIndexacaoMapeada)batimento) //// .ProximaTentativa(IoC.Current.Resolve<RgConsultaReceitaBatimento>()); foreach (var mapeada in indexacoesMapeadas) { var batido = ((IBatimentoIndexacaoMapeada)batimento).EstaBatido(mapeada); var campoBatido = new CampoBatido { Indexacao = mapeada.Indexacao, Batido = batido, TipoBatimento = TipoBatimento.Template }; resultadoBatimento.AdicionarOuEditar(campoBatido); } return(resultadoBatimento); }