public void Executar(AcaoDeSeparacao acao, LoteParaSeparacaoViewModel loteParaSeparacao) { var documento = this.CriarDocumento(acao, loteParaSeparacao); loteParaSeparacao.Documentos.Add(DocumentoParaSeparacaoViewModel.Criar(documento)); loteParaSeparacao.DocumentosNovos.Add(documento); this.SalvarPaginas(documento, acao, loteParaSeparacao); }
public void Executar(AcaoDeTriagemPreOcr acao, LoteTriagemViewModel lote) { var documento = this.CriarDocumento(acao, lote); lote.Documentos.Add(DocumentoParaSeparacaoViewModel.Criar(documento)); lote.DocumentosNovos.Add(documento); lote.MarcaDocumentoManipulado(documento.Id); this.SalvarPaginas(documento, acao, lote); }
private DocumentoParaSeparacaoViewModel CriarDocumentoViewModel(Documento documento, bool ignorarExcluidas) { var documentoViewModel = DocumentoParaSeparacaoViewModel.Criar(documento); var paginas = documento.Paginas.Where(x => x.Status != PaginaStatus.StatusExcluida || ignorarExcluidas == false).ToList(); foreach (var pagina in paginas) { documentoViewModel.AdicionaPagina(pagina, pagina.Ordem); } return(documentoViewModel); }
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++; } }
public IList <DocumentoParaSeparacaoViewModel> Executar(Lote lote) { var documentos = this.documentoRepositorio.ObterComPaginas(lote); ////var documentosOriginais = documentos.Where(x => //// x.DocumentoPaiId == 0 //// && x.Versao == "0" //// && (x.TipoDocumento.Id == TipoDocumento.CodigoDocumentoGeral //// || x.TipoDocumento.Id == TipoDocumento.CodigoNaoIdentificado //// || x.Marca == Documento.MarcaDeCriadoNaSeparacao //// || x.Marca == Documento.MarcaDeAlteradoNaSeparacao)).ToList(); var documentosOriginais = documentos.Where(x => x.DocumentoPaiId == 0 && x.Virtual == false).ToList(); var documentosClassificados = documentos.Where(x => x.DocumentoPaiId > 0 && x.Virtual == true).ToList(); var documentosParaSeparacao = new List <DocumentoParaSeparacaoViewModel>(); var paginas = documentosOriginais.SelectMany(documento => documento.Paginas) .Where(x => x.TipoArquivo != "PDF" && x.TipoArquivo != "PNG") .OrderBy(x => x.Ordem) .ToList(); DocumentoParaSeparacaoViewModel ultimoDocumentoCriado = null; var ordem = 1; foreach (var pagina in paginas) { var documentoParaSeparacao = this.ObterDocumentoParaSeparacao(pagina, documentosParaSeparacao, ultimoDocumentoCriado); documentoParaSeparacao.AdicionaPagina(pagina, ordem); ultimoDocumentoCriado = documentoParaSeparacao; ordem++; } this.CarregarTipos(documentosParaSeparacao, documentosClassificados); return(documentosParaSeparacao); }
private DocumentoParaSeparacaoViewModel ObterDocumentoParaSeparacao(Pagina pagina, IList <DocumentoParaSeparacaoViewModel> documentosParaSeparacao, DocumentoParaSeparacaoViewModel ultimoDocumentoCriado) { if (ultimoDocumentoCriado != null && pagina.Documento.TipoDocumento.Id == TipoDocumento.CodigoDocumentoGeral) { return(ultimoDocumentoCriado); } var documentoParaSeparacao = documentosParaSeparacao.FirstOrDefault(x => x.Id == pagina.Documento.Id); if (documentoParaSeparacao != null) { return(documentoParaSeparacao); } documentoParaSeparacao = DocumentoParaSeparacaoViewModel.Criar(pagina.Documento); documentosParaSeparacao.Add(documentoParaSeparacao); return(documentoParaSeparacao); }
private void AtualizarOrdemDocumentoNovo(LoteParaSeparacaoViewModel loteParaSeparacao, DocumentoParaSeparacaoViewModel documento) { var documentoNovo = loteParaSeparacao.DocumentosNovos.FirstOrDefault(x => x.Id == documento.Id); if (documentoNovo == null) { return; } documentoNovo.Ordem = documento.NovaOrdem; this.documentoRepositorio.Salvar(documentoNovo); }