Exemple #1
0
        public int Atualizar(PerguntaDto perguntaDto, int id)
        {
            try{
                var pergunta = _context.Perguntas.FirstOrDefault(x => x.Id == id);

                pergunta.Pergunta = perguntaDto.Pergunta;
                _context.Perguntas.Update(pergunta);

                //Encontrar alternativas referentes à pergunta
                var alternativas = _context.Alternativas
                                   .Where(x => x.PerguntaId == pergunta.Id)
                                   .ToList();

                //excluir alternativas já cadastradas
                foreach (var alternativa in alternativas)
                {
                    _context.Remove(alternativa);
                }

                //inserir novas alternativas
                var novasAlternativas = perguntaDto.Alternativas;
                foreach (var novaAlternativa in novasAlternativas)
                {
                    AlternativaDomain alternativa = new AlternativaDomain();
                    alternativa.Resposta = novaAlternativa;
                    alternativa.Pergunta = pergunta;
                    _context.Alternativas.Add(alternativa);
                }

                return(_context.SaveChanges());
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
Exemple #2
0
 private static void MapearRespostas(PerguntaDto pergunta, IEnumerable <PerguntaResposta> respostasDaPergunta)
 {
     pergunta.Respostas = respostasDaPergunta.Select(perguntaResposta => new RespostaDto
     {
         Descricao = perguntaResposta.Resposta.Descricao,
         Id        = perguntaResposta.Resposta.Id,
         Ordenacao = perguntaResposta.Ordenacao
     });
 }
Exemple #3
0
        private static IEnumerable <PerguntaResposta> ObterRespostaDaPergunta(PerguntaDto pergunta, List <PerguntaResposta> perguntasResposta)
        {
            var respostasDaPergunta = perguntasResposta.Where(perguntaResposta => perguntaResposta.Pergunta.Id.Equals(pergunta.Id));

            if (respostasDaPergunta == null || !respostasDaPergunta.Any())
            {
                throw new Exception($"Não foi possivel obter as respostas da pergunta '{pergunta.Descricao}'");
            }

            return(respostasDaPergunta);
        }
 public IActionResult Adicionar(PerguntaDto perguntaModel)
 {
     try{
         var pergunta = _mapper.Map <Pergunta>(perguntaModel);
         _perguntaRepositorio.Adicionar(pergunta);
         return(Created($"v1/obterporid/{pergunta.Id}", _mapper.Map <PerguntaDto>(pergunta)));
     }
     catch (System.Exception)
     {
         return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falou"));
     }
 }
Exemple #5
0
        public IActionResult Cadastrar([FromBody] PerguntaDto perguntaDto)
        {
            try{
                var s = _repo.Inserir(perguntaDto);

                if (s == 0)
                {
                    return(BadRequest("Erro no cadastro de pergunta"));
                }

                return(Ok("Pergunta cadastrada"));
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
Exemple #6
0
        public IActionResult Atualizar([FromBody] PerguntaDto perguntaDto, int id)
        {
            try{
                var s = _repo.Atualizar(perguntaDto, id);

                if (s == 0)
                {
                    return(BadRequest("Problema ao tentar atualizar pergunta"));
                }

                return(Ok("Pergunta e alternativas atualizadas"));
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
        public IActionResult Atualizar(int PerguntaId, PerguntaDto perguntaModel)
        {
            try{
                var pergunta = _perguntaRepositorio.ObterPorId(PerguntaId).Result;
                if (pergunta == null)
                {
                    return(NotFound());
                }

                _perguntaRepositorio.Atualizar(pergunta);
                var result = _mapper.Map <PerguntaDto>(pergunta);
                return(Created($"api/pergunta/v1/obterporid/{result.Id}", result));
            }
            catch (System.Exception)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, "Banco de Dados Falou"));
            }
        }
        public async Task <ActionResult> PostPerguntasAsync([FromBody] PerguntaDto dados)
        {
            var pergunta = new Pergunta
            {
                Descricao             = dados.Descricao,
                IdTipoPergunta        = dados.IdTipoPergunta,
                OpcaoRespostaPergunta = dados.Alternativas.Select(a => new OpcaoRespostaPergunta()
                {
                    Opcao = a.Texto
                }).ToList(),
            };

            db.Pergunta.Add(pergunta);

            await db.SaveChangesAsync();

            return(NoContent());
        }
Exemple #9
0
        public int Inserir(PerguntaDto perguntaDto)
        {
            try{
                PerguntaDomain pergunta = new PerguntaDomain();
                pergunta.Pergunta = perguntaDto.Pergunta;
                _context.Perguntas.Add(pergunta);

                foreach (var item in perguntaDto.Alternativas)
                {
                    AlternativaDomain alternativa = new AlternativaDomain();
                    alternativa.Resposta = item;
                    alternativa.Pergunta = pergunta;
                    _context.Alternativas.Add(alternativa);
                }

                return(_context.SaveChanges());
            }
            catch (Exception e) {
                throw new Exception(e.Message);
            }
        }
Exemple #10
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='dados'>
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task PostPerguntasAsync(this IColetaApiClient operations, PerguntaDto dados = default(PerguntaDto), CancellationToken cancellationToken = default(CancellationToken))
 {
     await operations.PostPerguntasWithHttpMessagesAsync(dados, null, cancellationToken).ConfigureAwait(false);
 }
Exemple #11
0
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='dados'>
 /// </param>
 public static void PostPerguntas(this IColetaApiClient operations, PerguntaDto dados = default(PerguntaDto))
 {
     Task.Factory.StartNew(s => ((IColetaApiClient)s).PostPerguntasAsync(dados), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }