public void Executar(LoteParaSeparacaoViewModel loteParaSeparacao) { var paginas = loteParaSeparacao.ObterPaginas(); var listaDocumentacaoGeral = this.documentoRepositorio.ObterDocumentosDoLotePorTipo(loteParaSeparacao.LoteId, TipoDocumento.CodigoDocumentoGeral).Select(x => x.Id).ToList(); foreach (var documento in loteParaSeparacao.Documentos) { if (paginas.Any(x => x.DocumentoAtualId() == documento.Id)) { if (documento.Manipulado && listaDocumentacaoGeral.Any(x => x == documento.Id) == false) { this.documentoRepositorio.AlterarRecognitionService(documento.Id, DocumentoStatus.TransmissaoOk, false); } continue; } this.Excluir(documento.Id); var documentosFilhos = this.documentoRepositorio.ObterFilhos(loteParaSeparacao.LoteId, documento.Id); foreach (var documentoFilho in documentosFilhos) { this.Excluir(documentoFilho.Id); } } }
private IEnumerable <DocumentoParaSeparacaoViewModel> ObterDocumentosOrdenados(LoteParaSeparacaoViewModel loteParaSeparacao) { var paginas = loteParaSeparacao.ObterPaginas(); //// começa sempre na 2 (a primeira é capa m2sys) var ordemDocumento = 2; var listaDeDocumentos = new List <DocumentoParaSeparacaoViewModel>(); var listaDeDocumentacaoGeral = this.documentoRepositorio .ObterDocumentosDoLotePorTipo(loteParaSeparacao.LoteId, TipoDocumento.CodigoDocumentoGeral); foreach (var pagina in paginas.OrderBy(x => x.Ordem)) { var documentoId = pagina.DocumentoAtualId(); if (listaDeDocumentos.Any(x => x.Id == documentoId) || listaDeDocumentacaoGeral.Any(x => x.Id == documentoId)) { continue; } var documento = this.ObterDocumento(documentoId, loteParaSeparacao); documento.NovaOrdem = ordemDocumento; listaDeDocumentos.Add(documento); ordemDocumento++; } return(listaDeDocumentos); }