コード例 #1
0
        public IHttpActionResult Post(ConsultaNivelTemas dados)
        {
            //var rnd = new Random(DateTime.Now.Millisecond);
            var perguntas = new List <ViewPergunta>();
            var retorno   = new ListViewPerguntaResposta();

            ValidaDadosConsulta(dados);

            using (ctx = new JogoMasterEntities())
            {
                dados.idsTema.ForEach(tema =>
                {
                    var perguntasBanco = ctx.Perguntas
                                         .Where(x => x.IdNivel == dados.idNivel && x.IdTema == tema)
                                         .Select(x => new ViewPergunta()
                    {
                        Id          = x.Id,
                        Pergunta    = x.Pergunta1,
                        IdNivel     = x.IdNivel,
                        IdTema      = x.IdTema,
                        Patrocinada = x.Patrocinada
                    }).ToList();

                    perguntas = perguntasBanco.OrderBy(x => Guid.NewGuid()).Take(4).ToList();

                    perguntas.ForEach(pergunta =>
                    {
                        var res = ctx.Respostas
                                  .Where(x => x.IdPergunta == pergunta.Id)
                                  .Select(x => new ViewResposta()
                        {
                            Id         = x.Id,
                            Correta    = x.Correta,
                            Resposta   = x.Resposta1,
                            IdPergunta = x.IdPergunta
                        })
                                  .ToList();

                        var perRes = new ViewPerguntaResposta
                        {
                            pergunta  = pergunta,
                            respostas = res
                        };

                        retorno.lista.Add(perRes);
                    });
                });
            }
            return(Ok(retorno.lista));
        }
コード例 #2
0
        public IHttpActionResult Post(ListViewPerguntaResposta dados)
        {
            var erros = new List <string>();

            if (dados == null || !dados.lista.Any())
            {
                return(BadRequest("Dados inválidos."));
            }

            dados.lista.ForEach(item =>
            {
                ValidaPergunta(item.pergunta, erros);
                ValidaResposta(item.respostas, erros);

                var pergunta_add = new Pergunta
                {
                    Pergunta1   = item.pergunta.Pergunta,
                    Patrocinada = item.pergunta.Patrocinada,
                    IdTema      = item.pergunta.IdTema,
                    IdNivel     = item.pergunta.IdNivel
                };

                using (ctx = new JogoMasterEntities())
                {
                    ctx.Perguntas.Add(pergunta_add);
                    ctx.SaveChanges();

                    item.respostas.ForEach(res => res.IdPergunta = pergunta_add.Id);

                    item.respostas.ForEach(res =>
                    {
                        ctx.Respostas.Add(new Resposta()
                        {
                            Correta    = res.Correta,
                            IdPergunta = pergunta_add.Id,
                            Resposta1  = res.Resposta,
                        });
                    });

                    ctx.SaveChanges();
                }
            });

            return(Ok("Perguntas cadastradas com sucesso!"));
        }