public async Task <bool> Handle(ExcluirWorkflowCommand request, CancellationToken cancellationToken)
        {
            var workflow = repositorioWorkflowAprovacao.ObterEntidadeCompleta(request.WorkflowId);

            if (workflow == null)
            {
                throw new NegocioException("Não foi possível localizar o fluxo de aprovação.");
            }

            if (workflow.Niveis.Any(n => n.Status == WorkflowAprovacaoNivelStatus.Reprovado))
            {
                return(false);
            }

            foreach (WorkflowAprovacaoNivel wfNivel in workflow.Niveis)
            {
                wfNivel.Status = WorkflowAprovacaoNivelStatus.Excluido;
                repositorioWorkflowAprovacaoNivel.Salvar(wfNivel);

                foreach (Notificacao notificacao in wfNivel.Notificacoes)
                {
                    repositorioWorkflowAprovacaoNivelNotificacao.ExcluirPorWorkflowNivelNotificacaoId(wfNivel.Id, notificacao.Id);
                    repositorioNotificacao.Remover(notificacao);
                }
            }

            workflow.Excluido = true;
            await repositorioWorkflowAprovacao.SalvarAsync(workflow);

            return(true);
        }
Beispiel #2
0
        public async Task ExcluirWorkflowNotificacoes(long id)
        {
            var workflow = repositorioWorkflowAprovacao.ObterEntidadeCompleta(id);

            if (workflow == null)
            {
                throw new NegocioException("Não foi possível localizar o fluxo de aprovação.");
            }

            if (workflow.Niveis.Any(n => n.Status == WorkflowAprovacaoNivelStatus.Reprovado))
            {
                return;
            }

            foreach (WorkflowAprovacaoNivel wfNivel in workflow.Niveis)
            {
                wfNivel.Status = WorkflowAprovacaoNivelStatus.Excluido;
                workflowAprovacaoNivel.Salvar(wfNivel);

                foreach (Notificacao notificacao in wfNivel.Notificacoes)
                {
                    repositorioWorkflowAprovacaoNivelNotificacao.ExcluirPorWorkflowNivelNotificacaoId(wfNivel.Id, notificacao.Id);
                    repositorioNotificacao.Remover(notificacao);
                }
            }

            workflow.Excluido = true;
            await repositorioWorkflowAprovacao.SalvarAsync(workflow);
        }
Beispiel #3
0
 public async Task Excluir(long aulaId)
 {
     foreach (var notificacaoAula in await ObterPorAula(aulaId))
     {
         repositorioNotificacao.Remover(notificacaoAula.NotificacaoId);
         database.Conexao.Delete(notificacaoAula);
     }
 }
Beispiel #4
0
 public void Excluir(long compensacaoAusenciaId)
 {
     foreach (var notificacaoCompensacao in ObterPorCompensacao(compensacaoAusenciaId))
     {
         repositorioNotificacao.Remover(notificacaoCompensacao.NotificacaoId);
         database.Conexao.Delete(notificacaoCompensacao);
     }
 }
        public async Task <bool> Handle(ExcluirNotificacaoCartaIntencoesObservacaoCommand request, CancellationToken cancellationToken)
        {
            var notificacoes = await repositorioNotificacaoCartaIntencoesObservacao.ObterPorCartaIntencoesObservacaoId(request.CartaIntencoesObservacaoId);

            unitOfWork.IniciarTransacao();
            try
            {
                foreach (var notificacao in notificacoes)
                {
                    await repositorioNotificacaoCartaIntencoesObservacao.Excluir(notificacao);

                    repositorioNotificacao.Remover(notificacao.NotificacaoId);
                }

                unitOfWork.PersistirTransacao();
            }
            catch (Exception)
            {
                unitOfWork.Rollback();
                throw;
            }

            return(true);
        }