public void Execute(IJobExecutionContext context) { log.Info("entro Finalizar Subasta por tiempo"); //System.Diagnostics.Debug.WriteLine("entro Finalizar Subasta por tiempo"); try { IBLSubasta subIBL = new BLSubasta(); IBLTiendaVirtual tiendas = new BLTiendaVirtual(); List <String> tenants = tiendas.ObtenerTenants(); log.Info("Tenants = " + tenants.ToString()); //System.Diagnostics.Debug.WriteLine("Tenants = "+ tenants.ToString()); foreach (var item in tenants) { log.Info("Antes de finalizar subastas en tenant = " + item.ToString()); subIBL.FinalizarSubastasTarea(item.ToString()); log.Info("Despues de finalizar subastas en tenant = " + item.ToString()); } } catch (Exception) { throw; } /* using (var mensaje = new MailMessage("*****@*****.**","*****@*****.**")) * { * mensaje.Subject = "Pruega"; * mensaje.Body = "Enviado desde .NET.Hora de prueba " + DateTime.Now; * using (SmtpClient client = new SmtpClient * { * EnableSsl = true, * Host = "smtp.gmail.com", * Port = 587, * Credentials = new NetworkCredential("[email protected] ", "grupophp") * }) * { * client.Send(mensaje); * } * }*/ log.Info("SALGO Finalizar Subasta por tiempo"); }
public override List <Subasta> getRecomendaciones(int tenantId, int idUsuario, List <TprodXCant> tipoProd, int cantRetorno) { IBLUsuario usuIBL = new BLUsuario(); IBLTipoProducto tprodIBL = new BLTipoProducto(); IBLSubasta subIBL = new BLSubasta(); IBLTiendaVirtual tienda = new BLTiendaVirtual(); Random rnd = new Random(); List <Subasta> subastasRecomendadas = new List <Subasta>(); List <Subasta> subastasRecomendadasAux = new List <Subasta>(); TiendaVirtualDTO tenant = tienda.ObtenerTienda(tenantId); if (tipoProd.Count > 0) { int totalDeNFavoritos = 0; foreach (var auxTotal in tipoProd) { totalDeNFavoritos = totalDeNFavoritos + auxTotal.cantidad; } foreach (var item in tipoProd) { int calculo = item.cantidad * cantRetorno / totalDeNFavoritos;//calcula el "porcentaje" de ese tipo de producto en la lista subastasRecomendadasAux = subIBL.ObtenerSubastasByTipoProducto(tenant.Dominio, item.idTProd); if (subastasRecomendadasAux.Count > 0) { for (int i = 0; i < calculo; i++) { if (subastasRecomendadasAux.Count == 1) { subastasRecomendadas.Add(subastasRecomendadasAux.ElementAt(rnd.Next(subastasRecomendadasAux.Count)));//obtiene subastas de forma ramdom } else { subastasRecomendadas.Add(subastasRecomendadasAux.ElementAt(rnd.Next(subastasRecomendadasAux.Count - 1)));//obtiene subastas de forma ramdom } } } } } if (subastasRecomendadas.Count == 0)//obtener recomendaciones genericas { var usuario = usuIBL.GetUsuario(tenant.Dominio, idUsuario); if (usuario != null) { char[] delimiterChars = { ';' }; string preferencias = usuario.preferencias; string[] categoriasPreferentes = preferencias.Split(delimiterChars); int calculo = cantRetorno / categoriasPreferentes.Length; IBLCategoria catIBL = new BLCategoria(); List <TipoProductoDTO> listTipoProd = new List <TipoProductoDTO>(); List <Subasta> listSubastas = new List <Subasta>(); foreach (string c in categoriasPreferentes) { var categoria = catIBL.ObtenerCategoriaByNombre(tenantId, c); // listTipoProd = tprodIBL.ObtenerTipoPorCategoria(categoria.CategoriaId); // foreach (var tProd in listTipoProd) //{ listSubastas = subIBL.ObtenerSubastasActivasxCategoria(tenant.Dominio, categoria.CategoriaId); foreach (var sub in listSubastas) { subastasRecomendadasAux.Add(sub); } } if (subastasRecomendadasAux.Count > 0) { for (int i = 0; i < calculo; i++) { if (subastasRecomendadasAux.Count == 1) { subastasRecomendadas.Add(subastasRecomendadasAux.ElementAt(rnd.Next(subastasRecomendadasAux.Count))); //obtiene subastas de forma ramdom } else { subastasRecomendadas.Add(subastasRecomendadasAux.ElementAt(rnd.Next(subastasRecomendadasAux.Count - 1))); //obtiene subastas de forma ramdom } } } subastasRecomendadasAux = null; } } if (subastasRecomendadas.Count == 0) { List <Subasta> listSubastas = subIBL.ObtenerSubastasActivas(tenant.Dominio); if (listSubastas.Count > 0) { for (int i = 0; i < cantRetorno; i++) { if (listSubastas.Count == 1) { subastasRecomendadas.Add(listSubastas.ElementAt(rnd.Next(listSubastas.Count))); //obtiene subastas de forma ramdom } else { subastasRecomendadas.Add(listSubastas.ElementAt(rnd.Next(listSubastas.Count - 1))); //obtiene subastas de forma ramdom } } } } return(subastasRecomendadas); }