Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        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);
        }