Esempio n. 1
0
        internal void ModificaStatus(WorkflowAprovacaoNivelStatus status, string observacao)
        {
            if ((status == WorkflowAprovacaoNivelStatus.Reprovado) &&
                (string.IsNullOrEmpty(observacao)))
            {
                throw new NegocioException("Para recusar é obrigatório informar uma observação.");
            }

            this.Observacao = observacao;
            this.Status     = status;
        }
        private NotificacaoStatus RetornaStatusPorNivelStatus(WorkflowAprovacaoNivelStatus status)
        {
            switch (status)
            {
            case WorkflowAprovacaoNivelStatus.Aprovado:
                return(NotificacaoStatus.Aceita);

            case WorkflowAprovacaoNivelStatus.Reprovado:
                return(NotificacaoStatus.Reprovada);

            default:
                throw new NegocioException("Não foi possível atualizar o status da notificação.");
            }
        }
        public IEnumerable <WorkflowAprovacaoNivel> ModificarStatusPorNivel(WorkflowAprovacaoNivelStatus status, int nivelNumero, string observacao)
        {
            var niveisWf = ObtemNiveis(nivelNumero);

            foreach (var nivel in niveisWf)
            {
                nivel.ModificaStatus(status, observacao);

                foreach (var notificacao in nivel.Notificacoes)
                {
                    notificacao.Status = RetornaStatusPorNivelStatus(status);
                }

                yield return(nivel);
            }
        }