public void sendMailOwner(DataProductoQueue p)
 {
     MailAddress toAddress;
     string subject;
     string body;
     toAddress = new MailAddress(p.OwnerProducto, "");
     subject = "Producto " + p.nombre;
     body = "<p>Lo sentimos... El producto " + p.ProductoID + " " + p.nombre + " ha alcanzado su fecha de finalizacion y no ha sido vendido.</p>";
     //mando mail al que publico el producto informando que no se vendio
     using (var message = new MailMessage(fromAddress, toAddress)
     {
         Subject = subject,
         IsBodyHtml = true,
         Body = body
     })
     {
         smtp.Send(message);
     }
 }
        public void sendEmailNotification(Compra c, DataProductoQueue p)
        {
            MailAddress toAddress;
            string subject;
            string body;

            //aviso al usuario que gano la subasta
            toAddress = new MailAddress(c.UsuarioID, "");
            subject = "¡Has ganado una subasta en Chebay!";
            body = "<p>Has ganado una subasta sobre el producto " + p.ProductoID + " " + p.nombre + "!</p>";

            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                IsBodyHtml = true,
                Body = body
            })
            {
                smtp.Send(message);
            }
        }
Example #3
0
        //--PRODUCTOS--
        public long AgregarProducto(Producto p, string idTienda)
        {
            try
            {
                if (p == null)
                    throw new Exception("Debe pasar un producto.");
                chequearTienda(idTienda);
                using (var context = ChebayDBContext.CreateTenant(idTienda))
                {

                    //Agrega el producto a la lista de publicados del usuario.
                    var qUser = from usr in context.usuarios
                                where usr.UsuarioID == p.UsuarioID
                                select usr;
                    if (qUser.Count() == 0)
                        throw new Exception("No existe el usuario " + p.UsuarioID);

                    Usuario u = qUser.FirstOrDefault();
                    if (u.publicados == null)
                        u.publicados = new HashSet<Producto>();
                    u.publicados.Add(p);

                    //Agregar el producto a la lista de productos de la Categoria.
                    var qCat = from cat in context.categorias
                               where cat.CategoriaID == p.CategoriaID
                               select cat;
                    if (qCat.Count() == 0)
                        throw new Exception("No existe la categoria " + p.CategoriaID);

                    CategoriaSimple cs = (CategoriaSimple)qCat.FirstOrDefault();
                    if (cs.productos == null)
                        cs.productos = new HashSet<Producto>();
                    cs.productos.Add(p);

                    context.productos.Add(p);
                    context.SaveChanges();

                    //app.config...

                    string QueueName = "subasta";
                    string connectionString = "Endpoint=sb://chebay.servicebus.windows.net/;SharedAccessKeyName=auth;SharedAccessKey=Jd/ztAsr+7snQ02QpUfn9bIvb9QvTjup+nox7GDw1dM=";
                    //CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");

                    //mandar a la queue fecha de cierre
                    QueueClient Client = QueueClient.CreateFromConnectionString(connectionString, QueueName);
                    //creo dataproductoqueue
                    DataProductoQueue dpq = new DataProductoQueue { OwnerProducto=u.UsuarioID, nombre = p.nombre, fecha_cierre= p.fecha_cierre, ProductoID=p.ProductoID, TiendaID=idTienda };

                    var message = new BrokeredMessage(dpq) { ScheduledEnqueueTimeUtc = p.fecha_cierre };
                    Client.Send(message);
                    System.Console.WriteLine(p.fecha_cierre.ToString());

                    return p.ProductoID;
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
                throw e;
            }
        }
Example #4
0
        private void procesarSubasta(DataProductoQueue p)
        {
            IDALSubasta ip = new DALSubastaEF();
            BLNotificaciones bl = new BLNotificaciones();
            IDALUsuario ubl = new DALUsuarioEF();

            //obtengo producto
            Producto prod = ip.ObtenerProducto(p.ProductoID, p.TiendaID);

            //Si no fue comprado por CompraDirecta
            if (!ip.ExisteCompra(p.ProductoID, p.TiendaID))
            {
                //vendedor
                Usuario vendedor = ubl.ObtenerUsuario(p.OwnerProducto, p.TiendaID);

                if (ip.TieneOfertas(p.ProductoID, p.TiendaID))
                {
                    //Obtengo la oferta ganadora.
                    Oferta o = ip.ObtenerOfertaGanadora(p.ProductoID, p.TiendaID);

                    //Creo una compra entre el Producto y el Usuario.
                    Compra c = new Compra
                    {
                        fecha_compra = p.fecha_cierre,
                        monto = o.monto,
                        ProductoID = o.ProductoID,
                        UsuarioID = o.UsuarioID
                    };
                    //se envia mensaje al vendedor en AgregarCompra
                    ip.AgregarCompraPostSubasta(c, p.TiendaID);

                    //obtengo mail ganador
                    Usuario u = ubl.ObtenerUsuario(c.UsuarioID, p.TiendaID);
                    //Notifico al ganador.
                    String linkTienda = "http://chebuynow.azurewebsites.net/" + p.TiendaID;
                    String linkCalif = "http://chebuynow.azurewebsites.net/" + p.TiendaID + "/Usuario/CalificarUsuario?prodId=" + p.ProductoID;
                    string bodyMensaje = getBodyMailHTML(p.TiendaID + ": Subasta ganada!", "Has ganado una nueva subasta!", u, prod, c.monto, true, linkCalif, linkTienda);

                    string asunto = "Chebay: Subasta de producto!";
                    bl.sendEmailNotification(u.Email, asunto, bodyMensaje);

                    //en agregar compra se notifica al vendedor.

                    //mail a vendedor
                    //obtengo vendedor
                    IDALUsuario udal = new DALUsuarioEF();

                    string asuntovendedor = "Chebay: Venta de producto!";
                    string bodyMensajeVendedor = getBodyMailHTML(p.TiendaID + ": Producto vendido!", "Has vendido un nuevo producto!", vendedor, prod, c.monto, false, "", linkTienda);

                    if (vendedor.Email != null)
                    {
                        bl.sendEmailNotification(vendedor.Email, asuntovendedor, bodyMensajeVendedor);
                    }
                    else
                    {
                        if (IsValidMail(vendedor.UsuarioID))
                        {
                            bl.sendEmailNotification(vendedor.UsuarioID, asuntovendedor, bodyMensajeVendedor);
                        }
                        //else... por algun error no tiene mail
                    }

                }
                else
                {
                    //no fue comprado
                    Debug.WriteLine("NO TIENE COMPRAS MAIL AL VENDEDOR");
                    String linkTienda = "http://chebuynow.azurewebsites.net/" + p.TiendaID;
                    string asunto = "Chebay: Producto no vendido...";
                    string bodyMensajeVendedor = getBodyMailHTML(p.TiendaID + ": Producto no vendido...", "No se ha logrado subastar su producto.", vendedor, prod, 0, false, "", linkTienda);
                    bl.sendEmailNotification(vendedor.Email, asunto, bodyMensajeVendedor);
                }

            }//si fue comprado se descarta el mensaje.
        }