コード例 #1
0
        private ICollection <PerguntaQuery> AddPerguntas(long codigoQuiz, ICollection <AddPerguntaCommand> commands)
        {
            var perguntas = new List <PerguntaQuery>();

            for (var i = 0; i < commands.Count; i++)
            {
                var command = commands.ElementAt(i);

                if (string.IsNullOrEmpty(command.Titulo))
                {
                    throw new Exception($"A pergunta {i} não possui título");
                }

                var pergunta = _perguntaRepository.Add(new EnqPergunta
                {
                    CodigoQuiz    = codigoQuiz,
                    Titulo        = command.Titulo,
                    OrdemExibicao = i
                });

                var query = PerguntaToQuery(pergunta);

                var corretas = command.Alternativas.Where(a => a.Correta == true).Count();
                if (corretas == 0)
                {
                    throw new Exception($"A pergunta {i} não possui uma alternativa correta");
                }
                else if (corretas > 1)
                {
                    throw new Exception($"A pergunta {i} possui mais de uma alternativa correta");
                }

                if (command.Alternativas.Where(a => string.IsNullOrEmpty(a.Titulo)).Any())
                {
                    throw new Exception($"A pergunta '{i}' possui alternativa sem título");
                }


                query.Alternativas = AddAlternativa(pergunta.Codigo, command.Alternativas);

                perguntas.Add(query);
            }

            return(perguntas);
        }
コード例 #2
0
 public void Add(PerguntaDTO pergunta)
 {
     if (pergunta != null)
     {
         var config = new MapperConfiguration(cfg => {
             cfg.CreateMap <PerguntaDTO, Pergunta>();
         });
         IMapper iMapper     = config.CreateMapper();
         var     destination = iMapper.Map <PerguntaDTO, Pergunta>(pergunta);
         var     quizz       = _quizzService.GeyById(pergunta.QuizzId);
         if (quizz != null)
         {
             perguntaRepository.Add(destination);
             quizz.Pergunta.Add(destination);
             _quizzRepository.Update(quizz);
         }
     }
 }
コード例 #3
0
 public new Pergunta Add(Pergunta pergunta)
 {
     return(_perguntaRepository.Add(pergunta));
 }
コード例 #4
0
 public ActionResult <EnqPergunta> Adicionar([FromBody] EnqPergunta command)
 {
     return(Created("perguntas", _perguntaRepository.Add(command)));
 }