public async Task <ActionResult> Puja(int?subastaId, [Bind(Include = "puja")] int puja, [Bind(Include = "TarjetaDeCreditoId")] double TarjetaDeCreditoId) { if (subastaId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Subasta subasta = await db.Subastas.FindAsync(subastaId); TarjetaDeCredito tarjetaDeCredito = db.Tarjetas.Find(TarjetaDeCreditoId); if (subasta.PujaActual < puja && tarjetaDeCredito.CreditoDisponible >= puja) { Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); UsuarioConTarjeta usuarioconTarjeta = subasta.UsuarioConTarjeta; if (usuarioconTarjeta != null) { usuarioconTarjeta.TarjetadeCredito.CreditoDisponible += subasta.PujaActual; } usuarioconTarjeta = db.UsuarioConTarjetas.Where(m => (m.CompradorId == comprador.Id && m.TarjetadeCredito.NumDeTarjeta == TarjetaDeCreditoId)).ToList()[0]; subasta.PujaActual = puja; subasta.UsuarioConTarjeta = usuarioconTarjeta; tarjetaDeCredito.CreditoDisponible = tarjetaDeCredito.CreditoDisponible - puja; subasta.Comprador = comprador; db.Entry(subasta).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptSubasta" })); } ViewBag.AnuncioId = new SelectList(db.Anuncios, "AnuncioId", "Etiqueta", subasta.AnuncioId); ViewBag.CompradorId = new SelectList(db.Compradores, "CompradorId", "Nombre", subasta.Comprador); return(RedirectToAction("Index", "Home", new { nameAnuncio = "ErrorSubasta" })); }
public async Task <ActionResult> CrearTarjeta([Bind(Include = "tarjeta")] double tarjeta) { if (tarjeta > 0) { Comprador user; if (User.IsInRole(RoleName.Comprador)) { int credito = QuerysGeneric.random.Next(100, 1000); TarjetaDeCredito tarjetaDeCredito = await db.Tarjetas.FindAsync(tarjeta); if (tarjetaDeCredito == null) { tarjetaDeCredito = new TarjetaDeCredito() { NumDeTarjeta = tarjeta, CreditoDisponible = credito, CreditoContable = credito }; db.Tarjetas.Add(tarjetaDeCredito); await db.SaveChangesAsync(); } user = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); UsuarioConTarjeta usuario = new UsuarioConTarjeta() { Comprador = user, CompradorId = user.Id, TarjetadeCredito = tarjetaDeCredito }; db.UsuarioConTarjetas.Add(usuario); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptTarjeta" })); } } return(View()); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //Codigo Temporal Para aƱadir Roles var roleStore = new RoleStore <IdentityRole>(new ApplicationDbContext()); var roleManager = new RoleManager <IdentityRole>(roleStore); if (roleManager.FindByName(RoleName.Admin) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Admin)); } if (roleManager.FindByName(RoleName.Comprador) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Comprador)); } if (roleManager.FindByName(RoleName.Vendedor) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Vendedor)); } if (model.roles == Roles.Admin) { await UserManager.AddToRoleAsync(user.Id, RoleName.Admin); } else { string Nombre = model.Nombre; string UserId = user.UserName; int credito = QuerysGeneric.random.Next(100, 1000); TarjetaDeCredito tarjetaDeCredito = await db.Tarjetas.FindAsync(model.Tarjeta); if (tarjetaDeCredito == null) { tarjetaDeCredito = new TarjetaDeCredito() { NumDeTarjeta = model.Tarjeta, CreditoDisponible = credito, CreditoContable = credito }; db.Tarjetas.Add(tarjetaDeCredito); await db.SaveChangesAsync(); } if (model.roles == Roles.Comprador) { await UserManager.AddToRoleAsync(user.Id, RoleName.Comprador); Comprador comprador = new Comprador() { Nombre = Nombre, User = UserId, Mensaje = "" }; db.Compradores.Add(comprador); await db.SaveChangesAsync(); UsuarioConTarjeta usuario = new UsuarioConTarjeta() { CompradorId = comprador.Id, Comprador = comprador, TarjetadeCredito = tarjetaDeCredito, }; db.UsuarioConTarjetas.Add(usuario); await db.SaveChangesAsync(); } else { await UserManager.AddToRoleAsync(user.Id, RoleName.Vendedor); Vendedor vendedor = new Vendedor() { Nombre = Nombre, User = UserId, TarjetaDeCredito = tarjetaDeCredito, TarjetadeCreditoId = tarjetaDeCredito.NumDeTarjeta, Mensaje = "" }; db.Vendedores.Add(vendedor); await db.SaveChangesAsync(); } } await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }