Ejemplo n.º 1
0
        public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira)
        {
            var opcao = await _opcaoAvaliacaoRepository.ObterAsync(id);

            if (opcao == null)
            {
                throw new DomainException("A opção não foi encontrada!");
            }

            if (verdadeira)
            {
                var questao = await _questaoRepository.ObterComOpcoesAsync(opcao.QuestaoId);

                if (questao.Tipo == 1 && questao.Opcoes.Find(x => x.Id != id && x.Verdadeira) != null)
                {
                    throw new DomainException("Já existe uma opção cadastrada como verdadeira para essa questão!");
                }
            }

            opcao.Descricao = descricao;

            opcao.Verdadeira = verdadeira;

            _opcaoAvaliacaoRepository.Modificar(opcao);

            await _opcaoAvaliacaoRepository.SaveChangesAsync();

            return(opcao.QuestaoId);
        }
Ejemplo n.º 2
0
        public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira)
        {
            var opcaoAvaliacao = await _opcaoAvaliacaoRepository.ObterAsync(id);

            if (opcaoAvaliacao.Questao.Avaliacao.Publicacoes?.Count > 0)
            {
                throw new DomainException("Não é permitido alterar uma avaliação que já foi publicada!");
            }
            ValidarOpcaoAvaliacao(opcaoAvaliacao.QuestaoId, verdadeira);

            opcaoAvaliacao.Descricao  = descricao;
            opcaoAvaliacao.Verdadeira = verdadeira;

            var erros = opcaoAvaliacao.Validate();

            if (erros.Length == 0)
            {
                _opcaoAvaliacaoRepository.Modificar(opcaoAvaliacao);

                return(_opcaoAvaliacaoRepository.SaveChanges());
            }
            else
            {
                throw new DomainException(erros);
            }
        }
Ejemplo n.º 3
0
        public async Task <int> AlterarOpcaoAvaliacaoAsync(int id, string descricao, bool verdadeira)
        {
            var opcaoAvaliacao = await _opcaoAvaliacaoRepository.ObterAsync(id);

            ValidarOpcaoAvaliacao(opcaoAvaliacao.QuestaoId, verdadeira);

            opcaoAvaliacao.Descricao  = descricao;
            opcaoAvaliacao.Verdadeira = verdadeira;

            var erros = opcaoAvaliacao.Validate();

            if (erros.Length == 0)
            {
                _opcaoAvaliacaoRepository.Modificar(opcaoAvaliacao);

                return(_opcaoAvaliacaoRepository.SaveChanges());
            }
            else
            {
                throw new DomainException(erros);
            }
        }