Exemple #1
0
        private IEnumerable <DocumentoParaSeparacaoViewModel> ObterDocumentosOrdenados(LoteTriagemViewModel lote)
        {
            var paginas             = lote.ObterPaginas();
            var ordemDocumento      = 1;
            var documentosOrdenados = new List <DocumentoParaSeparacaoViewModel>();

            var listaDeDocumentacaoGeral = this.documentoRepositorio
                                           .ObterDocumentosDoLotePorTipo(lote.LoteId, TipoDocumento.CodigoDocumentoGeral);

            foreach (var pagina in paginas.OrderBy(x => x.Ordem))
            {
                var documentoId = pagina.DocumentoAtualId();

                if (documentosOrdenados.Any(x => x.Id == documentoId) ||
                    listaDeDocumentacaoGeral.Any(x => x.Id == documentoId))
                {
                    continue;
                }

                var documento = this.ObterDocumento(documentoId, lote);
                documento.NovaOrdem = ordemDocumento;

                documentosOrdenados.Add(documento);
                ordemDocumento++;
            }

            return(documentosOrdenados);
        }
        public void Executar(LoteTriagemViewModel lote)
        {
            var paginas = lote.ObterPaginas();

            foreach (var documento in lote.Documentos)
            {
                if (paginas.Any(x => x.DocumentoAtualId() == documento.Id && x.Status != PaginaStatus.StatusExcluida))
                {
                    continue;
                }

                this.Excluir(documento.Id, lote);

                var documentosFilhos = this.documentoRepositorio.ObterFilhos(lote.LoteId, documento.Id);

                foreach (var documentoFilho in documentosFilhos)
                {
                    this.Excluir(documentoFilho.Id, lote);
                }
            }
        }