public void BuyAuction(int productId, int monto, string userId, string tienda) { try { Oferta o = new Oferta { esFinal = true, monto = monto, ProductoID = productId, UsuarioID = userId }; controladorSubasta.OfertarProducto(o, tienda); Compra c = new Compra { monto = monto, fecha_compra = DateTime.UtcNow, ProductoID = productId, UsuarioID = userId }; controladorSubasta.AgregarCompra(c, tienda); Clients.All.newBuyPosted(productId, monto, userId); } catch (Exception e) { Clients.Caller.onError(productId, e.Message); } }
public void CierreSubastaConOferta() { Console.WriteLine("Cierre subasta con una oferta"); string tienda = "MobileCenter"; IDALSubasta sdal = new DALSubastaEF(); Producto p = new Producto { nombre = "test1", UsuarioID = "*****@*****.**", fecha_cierre = DateTime.UtcNow.AddMinutes(1), CategoriaID = 5 }; long prod = sdal.AgregarProducto(p, tienda); Oferta o = new Oferta { monto = 500, ProductoID = prod, UsuarioID = "*****@*****.**" }; sdal.OfertarProducto(o, tienda); Console.WriteLine("Se ha creado un producto y ofertado::" + prod); Console.WriteLine("Se espera el envio de un mail al vendedor como comprador."); }
public void PlaceNewBid(int productId, int newBid, bool _esFinal, string userId, string tienda) { try { Oferta o = new Oferta { esFinal = _esFinal, monto = newBid, ProductoID = productId, UsuarioID = userId }; controladorSubasta.OfertarProducto(o, tienda); Clients.All.newBidPosted(productId, newBid, userId); } catch(Exception e) { Clients.Caller.onError(productId, e.Message); } }
//URL: api/subasta?monto=xx&idProducto=xx&idUsuario=xx&idTienda=xx; public string Get(int monto, long idProducto, string idUsuario) { try { IDALSubasta ip = new DALSubastaEF(); Oferta o = new Oferta { monto = monto, ProductoID = idProducto, UsuarioID = idUsuario }; ip.OfertarProducto(o, "MobileCenter"); return "Oferta realizada correctamente."; } catch (Exception e) { Debug.WriteLine(e.Message); Console.WriteLine(e.Message); throw; } }
public void OfertarProducto(Oferta o, string idTienda) { try { if (o == null) throw new Exception("Debe pasar una oferta."); chequearTienda(idTienda); using (var context = ChebayDBContext.CreateTenant(idTienda)) { //Chequeo que no haya Compra para el producto. var qCompra = from cmp in context.compras where cmp.ProductoID == o.ProductoID select cmp; if (qCompra.Count() > 0) throw new Exception("El producto " + o.ProductoID + " ya fue comprado."); //Chequeo que la fecha actual < fecha_cierre var qProducto = from prd in context.productos where prd.ProductoID == o.ProductoID select prd; if (DateTime.UtcNow > qProducto.FirstOrDefault().fecha_cierre) throw new Exception("El producto " + o.ProductoID + " ya ha expirado."); //Agrego la oferta a la colección del usuario. var qUsuario = from usr in context.usuarios where usr.UsuarioID == o.UsuarioID select usr; Usuario u = qUsuario.FirstOrDefault(); if (u.ofertas == null) u.ofertas = new HashSet<Oferta>(); u.ofertas.Add(o); //Agrego la oferta a la base. context.ofertas.Add(o); context.SaveChanges(); } } catch (Exception e) { Debug.WriteLine(e.Message); throw e; } }