Esempio n. 1
0
        public JuegosModel getJuegoById(int pId)
        {
            JuegosModel oJuegoModel = new JuegosModel();

            using (var bd = new Games_MarketEntities())
            {
                juegos      oJuegos     = bd.juegos.Where(p => p.id_juego.Equals(pId)).First();
                plataformas oplataforma = bd.plataformas.Where(p => p.id_plataforma.Equals(oJuegos.id_plataforma)).First();
                descuentos  odescuentos = bd.descuentos.Where(p => p.id_juego.Equals(pId)).Where(p => p.inicio < DateTime.Now).Where(p => p.fin > DateTime.Now).FirstOrDefault();
                if (odescuentos is null)
                {
                    odescuentos           = new descuentos();
                    odescuentos.descuento = 0;
                }
                plataformas oPlataformas = bd.plataformas.Where(p => p.id_plataforma.Equals(oJuegos.id_plataforma)).First();

                oJuegoModel.id_juego           = oJuegos.id_juego;
                oJuegoModel.nombre             = oJuegos.nombre;
                oJuegoModel.id_plataforma      = oJuegos.id_plataforma;
                oJuegoModel.nombre_plataforma  = oplataforma.nombre;
                oJuegoModel.precio             = oJuegos.precio - (oJuegos.precio * odescuentos.descuento / 100);
                oJuegoModel.precio             = Math.Round(oJuegoModel.precio, 2);
                oJuegoModel.img_ruta           = oJuegos.img_ruta;
                oJuegoModel.trailer_url        = oJuegos.trailer_url;
                oJuegoModel.distribuidora      = oJuegos.distribuidora;
                oJuegoModel.descripcion        = oJuegos.descripcion;
                oJuegoModel.fecha_lanzamiento  = oJuegos.fecha_lanzamiento;
                oJuegoModel.img_rutaPlataforma = oPlataformas.img_ruta;
            }
            return(oJuegoModel);
        }
Esempio n. 2
0
        public ActionResult Buy(int?id)
        {
            BOClaves oBOClaves = new BOClaves();

            if (id is null)
            {
                return(RedirectToAction("../Home"));
            }
            //Comprueba si hay stock del juego al que accede para comprar
            if (oBOClaves.checkStockClaveByid_juego(id.Value) is false)
            {
                return(RedirectToAction("../Games/Game/" + id));
            }

            BOJuegos    oBOJuegos    = new BOJuegos();
            JuegosModel ojuegosModel = oBOJuegos.getJuegoById(id.Value);

            return(View(ojuegosModel));
        }
        public ActionResult Index()
        {
            //Aqui recoge los datos con formato dccionario
            Dictionary <string, string> jsonRequest = GetJsonRequest();

            JuegosModel oJuegosModel = new JuegosModel();

            oJuegosModel.nombre = jsonRequest["name"];

            oJuegosModel.id_plataforma = int.Parse(jsonRequest["platform"]);

            oJuegosModel.id_genero = int.Parse(jsonRequest["gender"]);

            BOApi oBDBusqueda = new BOApi();

            List <JuegosModel> listaJuegos = oBDBusqueda.getGameslist(oJuegosModel);

            var jsonResponse = new
            {
                games = listaJuegos
            };

            return(Json(jsonResponse));
        }
Esempio n. 4
0
        public ActionResult Game(int?id, String comment)
        {
            //Control de errores
            if (Session["Log"] == null)
            {
                return(RedirectToAction("/Login/Login"));
            }
            if (id == null)
            {
                return(RedirectToAction("../Games/Game/" + id));
            }
            juegos juego = new juegos();

            using (var bd = new Games_MarketEntities())
            {
                juego = bd.juegos.Find(id);
            }
            if (juego == null || comment == "")
            {
                return(RedirectToAction("/Game"));
            }
            //Encuentra los datos del juego
            BOJuegos    oBOjuego    = new BOJuegos();
            JuegosModel juegosModel = oBOjuego.getJuegoById(id.Value);

            //Encuentra los generos del juego
            List <GenerosModel> oGenerosModel = oBOjuego.getGenerosById_juegosList(id.Value);
            string generos = "";

            foreach (var item in oGenerosModel)
            {
                generos += " " + @item.nombre;
            }
            ViewBag.generos = generos;

            //Encuentra las capturas del juego
            List <CapturasModel> listaCapturas = oBOjuego.getCapturasList(id.Value);

            ViewData["capturas"] = listaCapturas;

            //Añade el comentario
            BOComentarios oBOComentarios = new BOComentarios();

            if (comment != "")
            {
                oBOComentarios.post(id.Value, (int)Session["Log"], comment);
            }
            //Encuentra los comentarios
            List <ComentariosModel> listaComentarios = oBOComentarios.getComments(id.Value);

            ViewData["comentarios"] = listaComentarios;

            if (listaComentarios.Count != 0)
            {
                ViewBag.checkComments = true;
            }

            //Comprueba si hay stock
            BOClaves oBOClaves = new BOClaves();

            ViewBag.stock = oBOClaves.checkStockClaveByid_juego(id.Value);

            //Comprueba si el usuario lo tiene en lista de deseados
            if (Session["Log"] != null)
            {
                BOLogin   oBOLogin   = new BOLogin();
                usuarios  usuario    = oBOLogin.getUsuarioById((int)Session["Log"]);
                BOLibrary oBOLibrary = new BOLibrary();
                ViewBag.wish = oBOLibrary.checkWishList(usuario.id_usuario, id.Value);
            }

            return(View(juegosModel));
        }
        public List <JuegosModel> getGameslist(JuegosModel ofilter)
        {
            List <JuegosModel> listaJuegos  = new List <JuegosModel>();
            List <JuegosModel> listaOfertas = new List <JuegosModel>();

            if (ofilter.id_genero != 0 && ofilter.id_plataforma != 0)
            {
                using (var bd = new Games_MarketEntities())
                {
                    listaOfertas = (from juegos in bd.juegos
                                    where (juegos.nombre.Contains(ofilter.nombre))
                                    join plataformas in bd.plataformas
                                    on juegos.id_plataforma equals plataformas.id_plataforma
                                    where plataformas.id_plataforma == ofilter.id_plataforma
                                    join generos_juegos in bd.generos_juegos
                                    on juegos.id_juego equals generos_juegos.id_juego
                                    join generos in bd.generos
                                    on generos_juegos.id_genero equals generos.id_genero
                                    where generos.id_genero == ofilter.id_genero
                                    join descuentos in bd.descuentos
                                    on juegos.id_juego equals descuentos.id_juego
                                    where (DateTime.Now > descuentos.inicio) && (DateTime.Now < descuentos.fin)
                                    orderby descuentos.descuento descending

                                    select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        nombre_plataforma = plataformas.nombre,
                        img_rutaPlataforma = plataformas.img_ruta,
                        descuento = descuentos.descuento
                    }).ToList();

                    listaJuegos = (from juegos in bd.juegos
                                   where (juegos.nombre.Contains(ofilter.nombre))
                                   join generos_juegos in bd.generos_juegos
                                   on juegos.id_juego equals generos_juegos.id_juego
                                   join generos in bd.generos
                                   on generos_juegos.id_genero equals generos.id_genero
                                   where generos.id_genero == ofilter.id_genero
                                   join plataformas in bd.plataformas
                                   on juegos.id_plataforma equals plataformas.id_plataforma
                                   where plataformas.id_plataforma == ofilter.id_plataforma
                                   join descuentos in bd.descuentos
                                   on juegos.id_juego equals descuentos.id_juego into todas
                                   from descuentos in todas.DefaultIfEmpty()
                                   where descuentos == null || ((DateTime.Now < descuentos.inicio) && (DateTime.Now > descuentos.fin))
                                   orderby juegos.fecha_lanzamiento descending

                                   select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        img_rutaPlataforma = plataformas.img_ruta
                    }).ToList();


                    listaJuegos = listaOfertas.Concat(listaJuegos).OrderByDescending(i => i.descuento).ToList();

                    foreach (var item in listaJuegos)
                    {
                        item.fecha_lanzamiento_string = item.fecha_lanzamiento.ToShortDateString();
                        item.precio = item.precio - (item.precio * item.descuento / 100);
                        item.precio = Math.Round(item.precio, 2);
                    }
                    return(listaJuegos);
                }
            }
            if (ofilter.id_genero != 0 && ofilter.id_plataforma == 0)
            {
                using (var bd = new Games_MarketEntities())
                {
                    listaOfertas = (from juegos in bd.juegos
                                    where (juegos.nombre.Contains(ofilter.nombre))
                                    join plataformas in bd.plataformas
                                    on juegos.id_plataforma equals plataformas.id_plataforma
                                    join generos_juegos in bd.generos_juegos
                                    on juegos.id_juego equals generos_juegos.id_juego
                                    join generos in bd.generos
                                    on generos_juegos.id_genero equals generos.id_genero
                                    where generos.id_genero == ofilter.id_genero
                                    join descuentos in bd.descuentos
                                    on juegos.id_juego equals descuentos.id_juego
                                    where (DateTime.Now > descuentos.inicio) && (DateTime.Now < descuentos.fin)
                                    orderby descuentos.descuento descending

                                    select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        nombre_plataforma = plataformas.nombre,
                        img_rutaPlataforma = plataformas.img_ruta,
                        descuento = descuentos.descuento
                    }).ToList();

                    listaJuegos = (from juegos in bd.juegos
                                   where (juegos.nombre.Contains(ofilter.nombre))
                                   join plataformas in bd.plataformas
                                   on juegos.id_plataforma equals plataformas.id_plataforma
                                   join generos_juegos in bd.generos_juegos
                                   on juegos.id_juego equals generos_juegos.id_juego
                                   join generos in bd.generos
                                   on generos_juegos.id_genero equals generos.id_genero
                                   where generos.id_genero == ofilter.id_genero
                                   join descuentos in bd.descuentos
                                   on juegos.id_juego equals descuentos.id_juego into todas
                                   from descuentos in todas.DefaultIfEmpty()
                                   where descuentos == null || ((DateTime.Now < descuentos.inicio) && (DateTime.Now > descuentos.fin))
                                   orderby juegos.fecha_lanzamiento descending

                                   select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        img_rutaPlataforma = plataformas.img_ruta
                    }).ToList();

                    listaJuegos = listaOfertas.Concat(listaJuegos).OrderByDescending(i => i.descuento).ToList();

                    foreach (var item in listaJuegos)
                    {
                        item.fecha_lanzamiento_string = item.fecha_lanzamiento.ToShortDateString();
                        item.precio = item.precio - (item.precio * item.descuento / 100);
                        item.precio = Math.Round(item.precio, 2);
                    }
                    return(listaJuegos);
                }
            }
            if (ofilter.id_genero == 0 && ofilter.id_plataforma != 0)
            {
                using (var bd = new Games_MarketEntities())
                {
                    listaOfertas = (from juegos in bd.juegos
                                    where (juegos.nombre.Contains(ofilter.nombre))
                                    join plataformas in bd.plataformas
                                    on juegos.id_plataforma equals plataformas.id_plataforma
                                    where plataformas.id_plataforma == ofilter.id_plataforma
                                    join descuentos in bd.descuentos
                                    on juegos.id_juego equals descuentos.id_juego
                                    where (DateTime.Now > descuentos.inicio) && (DateTime.Now < descuentos.fin)
                                    orderby descuentos.descuento descending

                                    select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        nombre_plataforma = plataformas.nombre,
                        img_rutaPlataforma = plataformas.img_ruta,
                        descuento = descuentos.descuento
                    }).ToList();

                    listaJuegos = (from juegos in bd.juegos
                                   where (juegos.nombre.Contains(ofilter.nombre))
                                   join plataformas in bd.plataformas
                                   on juegos.id_plataforma equals plataformas.id_plataforma
                                   where plataformas.id_plataforma == ofilter.id_plataforma
                                   join descuentos in bd.descuentos
                                   on juegos.id_juego equals descuentos.id_juego into todas
                                   from descuentos in todas.DefaultIfEmpty()
                                   where descuentos == null || ((DateTime.Now < descuentos.inicio) && (DateTime.Now > descuentos.fin))
                                   orderby juegos.fecha_lanzamiento descending
                                   select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        img_rutaPlataforma = plataformas.img_ruta
                    }).ToList();

                    listaJuegos = listaOfertas.Concat(listaJuegos).OrderByDescending(i => i.descuento).ToList();

                    foreach (var item in listaJuegos)
                    {
                        item.fecha_lanzamiento_string = item.fecha_lanzamiento.ToShortDateString();
                        item.precio = item.precio - (item.precio * item.descuento / 100);
                        item.precio = Math.Round(item.precio, 2);
                    }
                    return(listaJuegos);
                }
            }
            else
            {
                using (var bd = new Games_MarketEntities())
                {
                    listaOfertas = (from juegos in bd.juegos
                                    where (juegos.nombre.Contains(ofilter.nombre))
                                    join plataformas in bd.plataformas
                                    on juegos.id_plataforma equals plataformas.id_plataforma
                                    join descuentos in bd.descuentos
                                    on juegos.id_juego equals descuentos.id_juego
                                    where (DateTime.Now > descuentos.inicio) && (DateTime.Now < descuentos.fin)
                                    orderby descuentos.descuento descending

                                    select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        nombre_plataforma = plataformas.nombre,
                        img_rutaPlataforma = plataformas.img_ruta,
                        descuento = descuentos.descuento
                    }).ToList();

                    listaJuegos = (from juegos in bd.juegos
                                   where (juegos.nombre.Contains(ofilter.nombre))
                                   join plataformas in bd.plataformas
                                   on juegos.id_plataforma equals plataformas.id_plataforma
                                   join descuentos in bd.descuentos
                                   on juegos.id_juego equals descuentos.id_juego into todas
                                   from descuentos in todas.DefaultIfEmpty()
                                   where descuentos == null || ((DateTime.Now < descuentos.inicio) && (DateTime.Now > descuentos.fin))
                                   orderby juegos.fecha_lanzamiento descending

                                   select new JuegosModel
                    {
                        id_juego = juegos.id_juego,
                        nombre = juegos.nombre,
                        id_plataforma = juegos.id_plataforma,
                        precio = juegos.precio,
                        img_ruta = juegos.img_ruta,
                        trailer_url = juegos.trailer_url,
                        distribuidora = juegos.distribuidora,
                        descripcion = juegos.descripcion,
                        fecha_lanzamiento = juegos.fecha_lanzamiento,
                        img_rutaPlataforma = plataformas.img_ruta
                    }).ToList();

                    listaJuegos = listaOfertas.Concat(listaJuegos).OrderByDescending(i => i.descuento).ToList();

                    foreach (var item in listaJuegos)
                    {
                        item.fecha_lanzamiento_string = item.fecha_lanzamiento.ToShortDateString();
                        item.precio = item.precio - (item.precio * item.descuento / 100);
                        item.precio = Math.Round(item.precio, 2);
                    }
                    return(listaJuegos);
                }
            }
        }
Esempio n. 6
0
        public ActionResult Buy(VentasModel oventasModel)
        {
            //Comprobaciones
            BOClaves    oBOClaves    = new BOClaves();
            BOJuegos    oBOJuegos    = new BOJuegos();
            JuegosModel ojuegosModel = oBOJuegos.getJuegoById(oventasModel.id_juego);

            if (oBOClaves.checkStockClaveByid_juego(oventasModel.id_juego) == false)
            {
                return(RedirectToAction("../Games/Game/" + oventasModel.id_juego));
            }
            if (oventasModel.tarj is null || oventasModel.tarj.Length != 16)
            {
                ViewBag.Error = "Número de la tarjeta erróneo.";
                return(View(ojuegosModel));
            }
            if (oventasModel.tarj_mes is null || oventasModel.tarj_mes.Length != 2)
            {
                ViewBag.Error = "Número del mes de la tarjeta erróneo.";
                return(View(ojuegosModel));
            }
            if (oventasModel.tarj_ano is null || oventasModel.tarj_ano.Length != 2)
            {
                ViewBag.Error = "Número del año de la tarjeta erróneo.";
                return(View(ojuegosModel));
            }
            if (oventasModel.cod_seg is null || oventasModel.cod_seg.Length != 3)
            {
                ViewBag.Error = "Número del código de seguridad de la tarjeta erróneo.";
                return(View(ojuegosModel));
            }
            if (Session["Log"] is null)
            {
                return(RedirectToAction("../Login/Login"));
            }

            //Iniciamos el proceso de compra.
            BOLogin  oBOLogin = new BOLogin();
            usuarios ousuario = oBOLogin.getUsuarioById((int)Session["Log"]);

            oventasModel.id_usuario = ousuario.id_usuario;
            //Iniciamos el proceso de compra.
            BOVentas oBOVentas = new BOVentas();
            ventas   oventa    = oBOVentas.addVenta(oventasModel);

            if (oventa.id_clave == 0)
            {
                ViewBag.Error = "Hemos tenido un problema durante el proceso de compra.";
                return(View(ojuegosModel));
            }

            //Envia un email con el código comprado
            claves      oclaves      = oBOClaves.getClaveByid_clave(oventa.id_clave);
            MailMessage oMailMessage = new MailMessage("*****@*****.**", ousuario.email, "¡Gracias por comprar en GamesMarket!",
                                                       "<p>Hola " + ousuario.nombre + " " + ousuario.apellidos + "</p>" + "<p>La Key del juego " + ojuegosModel.nombre + " comprado el " + oventa.fecha_venta + " es: </p>" +
                                                       "<h2>" + oclaves.codigo + "</h2>" +
                                                       "<p>¡Gracias y esperamos que sigas comprando en GamesMarket!<p>" +
                                                       "<p>No olvides que puedes consultar la clave también iniciando sesión en nuestra web: www.GamesMarket.com </p>");

            BOMail oBOMail = new BOMail();

            oBOMail.sendEmail(oMailMessage);

            return(RedirectToAction("../Buys/BuyCompleted"));
        }