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); }
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); } }
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); }
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")); }