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); } }
//--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; } }
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. }