Esempio n. 1
0
        public ActionResult JugarMultijugador(string idPlayer, string idJuego)
        {
            Guid idJugador = new Guid(idPlayer);
            Guid idGame    = new Guid(idJuego);
            var  juego     = PlaySingleton.GetInstance.GetJuego(idGame);
            var  player    = PlaySingleton.GetInstance.GetPlayer(idJugador);
            //Cantidad a contestar
            int cantidadAContestar = juego.CantidadPreguntas;
            //cuantas contesto
            int      cantidadContestadas = player.NroPreguntaRespondida;
            Pregunta pregunta            = juego.GetPreguntaJuego(player.NroPreguntaRespondida);
            PreguntaJuegoViewModel model = new PreguntaJuegoViewModel(pregunta, idJugador, idGame);

            return(View("JugarMultiJugador", model));
        }
Esempio n. 2
0
        public ActionResult ComenzarAJugarMobile()
        {
            Guid id    = Newtonsoft.Json.JsonConvert.DeserializeObject <Guid>(this.Contenido);
            var  juego = db.Juegos.Find(id);

            var preguntasContestadas = db.PreguntaPorRespuesta.Where(pr =>
                                                                     pr.Juego.Id == id &&
                                                                     pr.Usuario.UsuarioApp.Id == usuarioId
                                                                     ).ToList();

            var preguntaAContestar = new Pregunta();

            foreach (var pregunta in juego.Preguntas)
            {
                var existe = preguntasContestadas.FirstOrDefault(p => p.Pregunta.Id == pregunta.Id);

                if (existe == null)
                {
                    preguntaAContestar = pregunta;
                    break;
                }
            }

            if (preguntaAContestar.Nombre == null)
            {
                return(Json(new { Result = "Termino", Error = "" }, JsonRequestBehavior.AllowGet));  //CONTESTO TODAS LAS PREGUNTAS
                //return RedirectToAction("JuegoFinalizadoMobile", new { Id = Id });  //CONTESTO TODAS LAS PREGUNTAS
            }

            var model = new PreguntaJuegoViewModel();

            model.JuegoId           = id;
            model.PreguntaJuego     = preguntaAContestar.CovertirAViewModel();
            model.RespuestaCorrecta = preguntaAContestar.Respuestas.FirstOrDefault(r => r.EsCorrecta).Id;
            model.RespuestaJuego    = preguntaAContestar.Respuestas.Select(r => new RespuestaViewModel
            {
                Id     = r.Id,
                Nombre = r.Nombre
            }).ToList();

            return(Json(new { Result = model, Error = "" }, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        //Una vez seleccionada la categoria recibe el ID de la categoria y muestra las preguntas
        public ActionResult ComenzarAJugar(Guid Id)
        {
            var juego  = db.Juegos.Find(Id);
            var userid = User.Identity.GetUserId();

            var preguntasContestadas = db.PreguntaPorRespuesta.Where(pr =>
                                                                     pr.Juego.Id == Id &&
                                                                     pr.Usuario.UsuarioApp.Id == userid
                                                                     ).ToList();

            var preguntaAContestar = new Pregunta();

            foreach (var pregunta in juego.Preguntas)
            {
                var existe = preguntasContestadas.FirstOrDefault(p => p.Pregunta.Id == pregunta.Id);

                if (existe == null)
                {
                    preguntaAContestar = pregunta;
                    break;
                }
            }

            if (preguntaAContestar.Nombre == null)
            {
                return(RedirectToAction("JuegoFinalizado", new { Id = Id }));  //CONTESTO TODAS LAS PREGUNTAS TODAS LAS PREGUNTAS
            }

            var model = new PreguntaJuegoViewModel();

            model.JuegoId           = Id;
            model.PreguntaJuego     = preguntaAContestar.CovertirAViewModel();
            model.RespuestaCorrecta = preguntaAContestar.Respuestas.FirstOrDefault(r => r.EsCorrecta).Id;
            model.RespuestaJuego    = preguntaAContestar.Respuestas.Select(r => new RespuestaViewModel
            {
                Id     = r.Id,
                Nombre = r.Nombre
            }).ToList();

            return(View(model));
        }
Esempio n. 4
0
        public ActionResult Jugar(string id)
        {
            var       idGuid                   = new Guid(id);
            var       userId                   = User.Identity.GetUserId();
            var       repoUsuario              = new Repositorio <Usuario>(db);
            var       repoPregunta             = new Repositorio <Pregunta>(db);
            var       repoCategoria            = new Repositorio <Categoria>(db);
            var       repoPreguntasRespondidas = new Repositorio <PreguntasRespondidas>(db);
            Categoria categoriaSeleccionada    = null;

            //Traer la categoria
            if (id != null)
            {
                categoriaSeleccionada = repoCategoria.TraerTodos().Where(c => c.Id == idGuid).FirstOrDefault();
            }

            var preguntas            = repoPregunta.TraerTodos().Where(p => p.Categoria.Id == categoriaSeleccionada.Id).ToList();
            var preguntasRespondidas = repoPreguntasRespondidas.TraerTodos().Where(p => p.Usuario.ApplicationUser.Id == userId && p.Categoria.Id == categoriaSeleccionada.Id).ToList();

            //chequear cuantas tiene la categoria
            int cantidadAContestar = preguntas.Where(c => c.Categoria.Id == categoriaSeleccionada.Id).FirstOrDefault().Categoria.CantidadPreguntasAResponder;
            //cuantas contesto
            int cantidadContestadas = preguntasRespondidas != null?preguntasRespondidas.Count() : 0;

            //que tiene el juego menos las que contesto
            if (cantidadContestadas < cantidadAContestar)
            {
                var preguntasId            = preguntas.Select(p => p.Id);
                var preguntasContestadasId = preguntasRespondidas != null?preguntasRespondidas.Select(p => p.Pregunta.Id) : new List <Guid>();

                //traer una pregunta except entre pregutnas y contestadas
                var      preguntasFiltradas  = preguntasId.Except(preguntasContestadasId).ToList();
                var      preguntaId          = preguntasFiltradas.ElementAt(new Random().Next(0, preguntasFiltradas.Count() - 1));
                Pregunta preguntaRandom      = preguntas.Where(p => p.Id == preguntaId).FirstOrDefault();
                var      usuarioId           = repoUsuario.TraerTodos().Where(p => p.ApplicationUser.Id == userId).FirstOrDefault().Id;
                PreguntaJuegoViewModel model = new PreguntaJuegoViewModel(preguntaRandom, usuarioId);

                return(View("Juego", model));
            }
            int cantidadCorrectas = repoPreguntasRespondidas.TraerTodos().Count(p => p.Respuesta.EsCorrecta);
            var resultados        = repoPreguntasRespondidas.TraerTodos().Where(p => p.Usuario.ApplicationUser.Id == userId && p.Categoria.Id == categoriaSeleccionada.Id).Select(r => new ResultadoJuegoViewModel
            {
                Id                  = r.Id,
                Nombre              = r.Pregunta.Nombre,
                CategoriaId         = r.Categoria.Id,
                Usuarioid           = r.Usuario.Id,
                RespuestaContestada = r.Respuesta.Id,
                RespuestaCorrecta   = r.Pregunta.Respuestas.Where(q => q.EsCorrecta).FirstOrDefault().Id,
                //Resultado = cantidadCorrectas + "/" + cantidadAContestar,
                Respuestas = r.Pregunta.Respuestas.Select(p => new Models.ViewModels.Juego.RespuestaResultadoViewModel
                {
                    Id         = p.Id,
                    Nombre     = p.Nombre,
                    EsCorrecta = p.EsCorrecta
                }).ToList()
            }).ToList();
            ResultadoWraperJuegoViewModel resultadoWraper = new ResultadoWraperJuegoViewModel();

            resultadoWraper.Resultado = resultados;
            resultadoWraper.Score     = cantidadCorrectas + "/" + cantidadAContestar;
            return(View("Resultados", resultadoWraper));
        }