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); }
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); } } }
public new Pergunta Add(Pergunta pergunta) { return(_perguntaRepository.Add(pergunta)); }
public ActionResult <EnqPergunta> Adicionar([FromBody] EnqPergunta command) { return(Created("perguntas", _perguntaRepository.Add(command))); }