예제 #1
0
 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);
     }
 }
예제 #2
0
        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.");
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
 //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;
     }
 }
예제 #5
0
        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;
            }
        }