Beispiel #1
0
        public claves getClaveByid_clave(int id_clave)
        {
            claves oClaves = new claves();

            using (var bd = new Games_MarketEntities())
            {
                oClaves = bd.claves.Where(p => p.id_clave.Equals(id_clave)).FirstOrDefault();
            }
            return(oClaves);
        }
Beispiel #2
0
        public Boolean checkStockClaveByid_juego(int id_juego)
        {
            claves oClaves = new claves();

            using (var bd = new Games_MarketEntities())
            {
                oClaves = bd.claves.Where(p => p.id_juego.Equals(id_juego)).Where(p => p.estado.Equals(true)).FirstOrDefault();
            }
            if (oClaves != null)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #3
0
        public ventas addVenta(VentasModel oventasModel)
        {
            ventas oventas = new ventas();

            using (var bd = new Games_MarketEntities())
            {
                using (var dbContextTransaction = bd.Database.BeginTransaction())
                {
                    try
                    {
                        claves oClaves = new claves();
                        oClaves        = bd.claves.Where(p => p.id_juego.Equals(oventasModel.id_juego)).Where(p => p.estado.Equals(true)).FirstOrDefault();
                        oClaves.estado = false;

                        oventas.id_clave    = oClaves.id_clave;
                        oventas.id_usuario  = oventasModel.id_usuario;
                        oventas.fecha_venta = DateTime.Now;
                        oventas.tarj        = oventasModel.tarj;
                        oventas.tarj_mes    = oventasModel.tarj_mes;
                        oventas.tarj_ano    = oventasModel.tarj_ano;

                        bd.ventas.Add(oventas);
                        bd.SaveChanges();

                        dbContextTransaction.Commit();
                    }
                    catch (Exception e)
                    {
                        dbContextTransaction.Rollback();

                        BOLogin oBOUsuarios = new BOLogin();

                        usuarios ousuario = oBOUsuarios.getUsuarioById(oventasModel.id_usuario);

                        MailMessage oMailMessage = new MailMessage("*****@*****.**", "*****@*****.**", "Error al comprar",
                                                                   "<p>El usuario " + ousuario.email + " ha intentado comprar el juego con id " + oventasModel.id_juego + "y se ha producido el siguiente error:</p>" + e);

                        BOMail oBOMail = new BOMail();
                        oBOMail.sendEmail(oMailMessage);
                        oventas.id_clave = 0;
                    }
                }
            }
            return(oventas);
        }
Beispiel #4
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"));
        }