public void BaterUsandoFullText(Documento documento, IList <PalavraReconhecida> palavras) { if (palavras == null) { return; } if (palavras.Count == 0) { return; } var listaLimpa = new List <dynamic>(); foreach (var regiao in palavras) { var palavraAtual = Equivalencia.LimpaConteudoNome(regiao.Texto); if (string.IsNullOrEmpty(palavraAtual) == false) { ////listaLimpa.Add(new dynamic() ////{ //// Texto = palavraAtual, //// Localizacao = regiao.Localizacao ////}); } } Log.Application.DebugFormat("Documento {0} - Palavras: {1} ", documento.Id, BatimentoFullText.ImprimirLista(listaLimpa)); if (listaLimpa.Count == 0) { return; } var camposSemValor1 = this.indexacaoRepositorio.ObterComMapeamentoPorDocumento(documento); if (camposSemValor1 == null) { return; } if (camposSemValor1.Count == 0) { return; } var ultimoCampo = new Campo(); foreach (var indexacao in camposSemValor1) { if (ultimoCampo.Id == indexacao.Campo.Id || indexacao.PrimeiroValor != null) { continue; } ultimoCampo = indexacao.Campo; var deveSalvar = false; switch (indexacao.Campo.Id) { default: if (indexacao.BateComFullText(listaLimpa)) { deveSalvar = true; } break; } if (deveSalvar) { indexacao.PrimeiroValor = indexacao.SegundoValor; indexacao.ValorFinal = indexacao.SegundoValor; indexacao.ValorUtilizadoParaValorFinal = ValorUtilizadoParaValorFinal.SegundoValor; indexacao.OcrComplementou = true; indexacao.DataPrimeiraDigitacao = DateTime.Now; this.gravaLogDocumentoServico.Executar( LogDocumento.AcaoDocumentoOcr, documento.Id, string.Format("Campo [{0}] complementado pelo ocr-FT. Valor:[{1}]", indexacao.Campo.Description, BatimentoFullText.LimitaString(indexacao.SegundoValor.Trim(), 99))); this.indexacaoRepositorio.Salvar(indexacao); } } }