コード例 #1
0
        public List <Subasta> SubastasFavoritasByUsuario(String tenant, int idUsuario)
        {
            IBLSubasta subIBL    = new BLSubasta();
            var        favoritos = _dal.FavoritosByUsuario(tenant, idUsuario);

            List <Subasta> subastas = new List <Subasta>();

            foreach (var fav in favoritos)
            {
                subastas.Add(subIBL.ObtenerSubasta(tenant, fav.id_Subasta));
            }
            return(subastas);
        }
コード例 #2
0
        public List <TprodXCant> obtenerTopNtipoProdFav(String tenant, int idUsuario, int N)
        {
            IBLFavorito favIBL = new BLFavorito();
            IBLSubasta  subIBL = new BLSubasta();

            List <int> tipoProductos = new List <int>();

            var favoritos = favIBL.FavoritosByUsuario(tenant, idUsuario);

            foreach (var item in favoritos)
            {
                var subasta = subIBL.ObtenerSubasta(tenant, item.id_Subasta);
                tipoProductos.Add(subasta.id_Producto);
            }

            List <TprodXCant> ocurrencias = new List <TprodXCant>();

            int idTipoP;

            for (int i = 0; i < tipoProductos.Count; i++)//cuento los tProductos de los favoritos
            {
                idTipoP = tipoProductos[i];
                var pertenece = false;
                List <TprodXCant> ocurrenciasAux = new List <TprodXCant>(ocurrencias);;

                foreach (var elemento in ocurrenciasAux)
                {
                    if (elemento.idTProd == idTipoP)
                    {
                        int cantidadActual = elemento.cantidad;
                        ocurrencias[elemento.posicion] = (new TprodXCant(elemento.posicion, idTipoP, cantidadActual + 1));
                        pertenece = true;
                    }
                }
                if (!pertenece)
                {
                    ocurrencias.Add(new TprodXCant(ocurrencias.Count(), idTipoP, 1));
                }
            }

            List <TprodXCant> filtrada = new List <TprodXCant>(ocurrencias.OrderByDescending(s => s.cantidad).Take(N));

            return(filtrada);
        }