public void Executar(AcaoDeTriagemPreOcr acao, LoteTriagemViewModel lote) { var ordemPagina = 1; var ordemDocumento = 1; var documentoAtual = new DocumentoParaSeparacaoViewModel(); foreach (var paginaId in acao.Paginas) { var documentoDaPagina = lote.ObterDocumentoDaPagina(paginaId); var pagina = lote.ObterPagina(paginaId); if (documentoAtual != documentoDaPagina) { ordemDocumento++; documentoAtual = documentoDaPagina; if (ordemDocumento != documentoAtual.Ordem) { documentoAtual.NovaOrdem = ordemDocumento; this.documentoRepositorio.AlterarOrdem(documentoAtual.Id, documentoAtual.NovaOrdem); this.documentoRepositorio.AlterarOrdemPais(documentoAtual.Id, documentoAtual.NovaOrdem); this.gravaLogDoDocumentoServico.Executar(LogDocumento.AcaoMudancaDeOrdem, documentoAtual.Id, string.Format("Mudança de ordem. De #{0} para #{1}. [{2}]", documentoAtual.Ordem, documentoAtual.NovaOrdem, lote.Fase)); lote.MarcaDocumentoManipulado(documentoAtual.Id); this.AtualizarOrdemDocumentoNovo(lote, documentoAtual); } } var ordemOriginal = pagina.Ordem; if (ordemOriginal != ordemPagina) { pagina.Ordem = ordemPagina; this.paginaRepositorio.AlterarOrdem(pagina.Id, ordemPagina); this.gravaLogDaPaginaServico.Executar(LogPagina.AcaoMudarOrdem, paginaId, pagina.DocumentoAtualId(), string.Format("Mudança de ordem. De #{0} para #{1}. [{2}]", ordemOriginal, ordemPagina, lote.Fase)); lote.MarcaDocumentoManipulado(pagina.DocumentoAtualId()); } ordemPagina++; } }
private Documento ObterDocumento(int paginaId, LoteTriagemViewModel lote) { var documentoViewModel = lote.ObterDocumentoDaPagina(paginaId); if (documentoViewModel != null && documentoViewModel.Id > 0) { return(new Documento { Id = documentoViewModel.Id }); } var pagina = this.paginaRepositorio.ObterPorId(paginaId); if (pagina != null && pagina.Documento != null) { return(pagina.Documento); } return(new Documento { Id = 0 }); }