public ActionResult Index(string nameAnuncio = "") { if (nameAnuncio == "") { db.RevisarSubastas(); Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); Vendedor vendedor = QuerysGeneric.GetVendedor(User.Identity.Name, db.Vendedores); if (comprador != null) { nameAnuncio = comprador.Mensaje; comprador.Mensaje = ""; db.Entry(comprador).State = EntityState.Modified; } if (vendedor != null) { nameAnuncio = vendedor.Mensaje; vendedor.Mensaje = ""; db.Entry(vendedor).State = EntityState.Modified; } db.SaveChanges(); } var Anuncios = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 10, m => m.Cantidad > 0 && m.SoloParaSubasta == false).OrderBy(m => m.Calificacion); var Subastas = QuerysGeneric.Get_N_Obj_Ordenado_Por <Subasta, int>(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto).Include(a => a.Anuncio.Files), 3, m => m.PujaActual, true); var Rebajas = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 2, m => m.Precio > m.NuevoPrecio && m.Cantidad > 0 && m.SoloParaSubasta == false); return(View(new Tuple <IEnumerable <Anuncio>, IEnumerable <Subasta>, IEnumerable <Anuncio>, string>(Anuncios, Subastas, Rebajas, nameAnuncio))); }
public ActionResult IndexAccept(string nameAnuncio) { var Anuncios = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 10, m => m.Cantidad > 0).OrderBy(m => m.Calificacion); var Subastas = QuerysGeneric.Get_N_Obj_Ordenado_Por <Subasta, int>(db.Subastas, 3, m => m.PujaActual, true); var Rebajas = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 2, m => m.Precio > m.NuevoPrecio); return(View(new Tuple <IEnumerable <Anuncio>, IEnumerable <Subasta>, IEnumerable <Anuncio>, string>(Anuncios, Subastas, Rebajas, nameAnuncio))); }
// GET: Subastas public async Task <ActionResult> Index(int vista = 0, int filtros1 = -1, int filtros2 = -1) { IEnumerable <Subasta> subastas; if (filtros1 == -1) { subastas = await db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto).ToListAsync(); } else if (filtros2 == -1) { subastas = QuerysGeneric.Get_N_Obj_Mientras(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto), null, m => ((int)m.Anuncio.Producto.Tipo == filtros1)); } else { subastas = QuerysGeneric.Get_N_Obj_Mientras(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto), null, m => ((int)m.Anuncio.Producto.Tipo == filtros1 && m.Anuncio.Producto.Especificacion == filtros2)); } return(View(new Tuple <IEnumerable <Subasta>, int, int, int>(subastas, vista, filtros1, filtros2))); }
public void RevisarSubastas() { var subastas = QuerysGeneric.Get_N_Obj_Mientras(Subastas.Include(m => m.Comprador).Include(m => m.Anuncio.Vendedor).Include(m => m.Anuncio.Vendedor.TarjetaDeCredito).Include(m => m.UsuarioConTarjeta.TarjetadeCredito).Include(m => m.Anuncio).Include(m => m.Anuncio.Producto), null, m => m.FechadeCulminacion <= DateTime.Now); foreach (var sub in subastas) { if (sub.Comprador != null) { sub.Comprador.Mensaje = sub.Comprador.Mensaje + "@Ha Ganado La Subasta del Producto: " + sub.Anuncio.Producto.Nombre; sub.UsuarioConTarjeta.TarjetadeCredito.CreditoContable = sub.UsuarioConTarjeta.TarjetadeCredito.CreditoContable - sub.PujaActual; TarjetaDeCredito tar = sub.Anuncio.Vendedor.TarjetaDeCredito; tar.CreditoContable += sub.PujaActual; tar.CreditoDisponible += sub.PujaActual; sub.Anuncio.Vendedor.Mensaje = sub.Anuncio.Vendedor.Mensaje + "@Se ha vendido su subasta del Producto: " + sub.Anuncio.Producto.Nombre + " en " + sub.PujaActual; Entry(sub).State = EntityState.Modified; } } Subastas.RemoveRange(subastas); SaveChanges(); }
public async Task <ActionResult> AñadirAlCarrito([Bind(Include = "Cantidad")] int?cantidad, int idAnuncio, string controlador = "Anuncios") { Anuncio anuncio = db.Anuncios.Find(idAnuncio); Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); if (anuncio.Cantidad < cantidad) { return(RedirectToAction("Index", new { nameAnuncio = "ErrorCantidad" })); } else { var pedidos = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, 1, m => (m.CompradorId == comprador.Id && m.AnuncioId == idAnuncio && !(m is Producto_Vendido))); if (pedidos.Count() == 0) { anuncio.Cantidad = anuncio.Cantidad - (cantidad == null?1:(int)cantidad); db.Carritos.Add(new Carrito { Comprador = comprador, CompradorId = comprador.Id, Anuncio = anuncio, AnuncioId = anuncio.AnuncioId, Cantidad = (cantidad == null ? 1 : (int)cantidad), FechaSeparado = DateTime.Now }); } else { int Cantidad = (cantidad == null ? 1 : (int)cantidad); var carrito = pedidos.ToList()[0]; if (Cantidad > 0 && Cantidad <= carrito.Anuncio.Cantidad) { anuncio.Cantidad += carrito.Cantidad; carrito.Cantidad += Cantidad; anuncio.Cantidad -= carrito.Cantidad; carrito.FechaSeparado = DateTime.Today; } else { return(RedirectToAction("Index", controlador, new { nameAnuncio = anuncio.Producto.Nombre })); } db.Entry(carrito).State = EntityState.Modified; } await db.SaveChangesAsync(); } return(RedirectToAction("Index", controlador, new { nameAnuncio = anuncio.Producto.Nombre })); }
public async Task <ActionResult> Index(int vista = 0, int filtros1 = -1, int filtros2 = -1, int filtros3 = 0, string nombre = "", int precioMin = 0, int PrecioMax = 10000, string nameAnuncio = "") { Vendedor vendedor = QuerysGeneric.GetVendedor(User.Identity.Name, db.Vendedores); IEnumerable <Anuncio> anuncios; if (filtros1 == -1) { anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false); } else { if (filtros2 == -1) { anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((int)m.Producto.Tipo == filtros1 && ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false)); } else { anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((int)m.Producto.Tipo == filtros1 && m.Producto.Especificacion == filtros2 && ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false)); } } if (filtros3 != 0) { anuncios = anuncios.Where(m => m.Precio > m.NuevoPrecio); } if (nombre != "") { anuncios = anuncios.Where(m => m.Etiqueta.Contains(nombre) || m.Producto.Nombre.Contains(nombre) || m.Descripcion.Contains(nombre)); vista = -1; } if (precioMin != 0 || PrecioMax != 10000) { vista = -1; anuncios = anuncios.Where(m => m.NuevoPrecio > precioMin && m.NuevoPrecio < PrecioMax); } return(View(new Tuple <IEnumerable <Anuncio>, int, Filtros, string>(anuncios, vista, new Filtros(filtros1, filtros2, filtros3), nameAnuncio))); }
public IEnumerable <Carrito> Articulos(int id) { var carros = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, null, m => (m.CompradorId == id && !(m is Producto_Vendido))).ToList(); return(carros); }
public async Task <ActionResult> Create(Producto_Vendido producto_Vendido, int carritoId, int Total) { Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); IEnumerable <TarjetaDeCredito> tarjetas = QuerysGeneric.GetTarjetas(comprador.Tarjetas); ViewBag.NumDesuTarjeta = new SelectList(tarjetas, "NumDeTarjeta", "NumDeTarjeta", new Producto_Vendido()); producto_Vendido.NumDesuTarjeta = db.Tarjetas.Find(producto_Vendido.TarjetaDeCreditoId); TarjetaDeCredito tarjeta = producto_Vendido.NumDesuTarjeta; if (tarjeta.CreditoDisponible < Total) { return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" })); } tarjeta.CreditoDisponible = tarjeta.CreditoDisponible - Total; tarjeta.CreditoContable = tarjeta.CreditoContable - Total; db.Entry(tarjeta).State = EntityState.Modified; if (carritoId != -1) { Carrito carrito = db.Carritos.Find(producto_Vendido.CarritoId); producto_Vendido.CarritoId = carritoId; producto_Vendido.Cantidad = carrito.Cantidad; producto_Vendido.AnuncioId = carrito.AnuncioId; producto_Vendido.CompradorId = carrito.CompradorId; producto_Vendido.FechaSeparado = carrito.FechaSeparado; if (ModelState.IsValid) { db.Producto_Vendido.Add(producto_Vendido as Producto_Vendido); db.Carritos.Remove(carrito); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" })); } } else { var carros = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, null, m => (m.CompradorId == comprador.Id && !(m is Producto_Vendido))).ToList(); foreach (var item in carros) { Producto_Vendido producto = new Producto_Vendido(); producto.CarritoId = carritoId; producto.Cantidad = item.Cantidad; producto.AnuncioId = item.AnuncioId; producto.CompradorId = item.CompradorId; producto.FechaSeparado = item.FechaSeparado; if (ModelState.IsValid) { db.Producto_Vendido.Add(producto as Producto_Vendido); db.Carritos.Remove(item); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" })); } } } return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" })); }