Ejemplo n.º 1
0
        public void Atualizar(LicaoDTO licaoDTO, Usuario usuarioLogado)
        {
            if (licaoDTO == null || !licaoDTO.Id.HasValue)
            {
                throw new Exception("Solicitação inválida.");
            }

            if (licaoDTO.Questoes == null || !licaoDTO.Questoes.Any())
            {
                throw new Exception("É necessário ter pelo menos 1 questão.");
            }

            Licao licao = ObterPorId(licaoDTO.Id.Value);

            if (licao == null || licao.IdCase != licaoDTO.IdCase)
            {
                throw new Exception("Lição não encontrada.");
            }

            if (!_caseDeNegocioService.PermiteUsuarioEditarCaseDeNegocio(usuarioLogado, licao.CaseDeNegocio))
            {
                throw new Exception("Usuário não possui permissão para esta solicitação.");
            }

            licaoDTO.PreencherEntidade(licao);
            AtualizarListaDeQuestoes(licao, licaoDTO.Questoes);

            Atualizar(licao);
        }
Ejemplo n.º 2
0
        public int Adicionar(LicaoDTO licaoDTO, Usuario usuarioLogado)
        {
            if (licaoDTO == null || licaoDTO.Id.HasValue)
            {
                throw new Exception("Solicitação inválida.");
            }

            if (licaoDTO.Questoes == null || !licaoDTO.Questoes.Any())
            {
                throw new Exception("É necessário ter pelo menos 1 questão.");
            }

            CaseDeNegocio caseDeNegocio = _caseDeNegocioService.ObterPorId(licaoDTO.IdCase);

            if (caseDeNegocio == null)
            {
                throw new Exception("Case de negócio não encontrado.");
            }

            if (!_caseDeNegocioService.PermiteUsuarioEditarCaseDeNegocio(usuarioLogado, caseDeNegocio))
            {
                throw new Exception("Usuário não possui permissão para esta solicitação.");
            }

            Licao licao = new Licao();

            licao.IdCase        = caseDeNegocio.Id;
            licao.CaseDeNegocio = caseDeNegocio;

            licaoDTO.PreencherEntidade(licao);
            AtualizarListaDeQuestoes(licao, licaoDTO.Questoes);

            Adicionar(licao);

            return(licao.Id);
        }