public ArticuloPaginadoViewModel FiltroPaginado(FiltroArticulo filtro)
        {
            var resultado = ObtenerArticulosFiltradosPorBusqueda(filtro);

            var vm = ConstruirViewModel(filtro, resultado);

            return(vm);
        }
        private List <Articulo> ObtenerArticulosFiltradosPorBusqueda(FiltroArticulo filtro)
        {
            var predicado = GenerarWhereBusqueda(filtro);

            predicado = GenerarWhereTags(predicado, filtro.Tags);

            predicado = GenerarWhereTipos(predicado, filtro.Tipos);

            var query = _articuloService.Buscar(predicado);


            return(query.Include(x => x.Tipo).Include(i => i.Tags).ToList());
        }
Exemple #3
0
        /*MOSTRAR POR ID*/

        /// <summary>
        /// Maneja la vista que maneja  Lista los artiuctos de un negocio de un usuario registrado
        /// PedroCora
        /// </summary>
        /// <returns></returns>

        public IActionResult ListarArticulo(FiltroArticulo filtro)
        {
            Negocio negocioActivo             = HttpContext.Session.GetObjectFromJson <Negocio>("negocioEnSession");
            ArticuloGeneralModelAndView model = new ArticuloGeneralModelAndView();

            model.llenarDatosGenerales(HttpContext, _context);
            model.filtro.llenar(filtro.nombreFiltro, filtro.total, filtro.paginaActual);
            List <Articulo> ListarArticulo = ArticuloDao.ListadoDeArticulos(_context, filtro, negocioActivo);

            model.listaDeArticulos = ListarArticulo;
            model.filtro           = filtro;
            return(View("ListarArticulo", model));
        }
Exemple #4
0
        public List <Articulo> ListadoDeArticulos(HiShopContext _context, FiltroArticulo filtro, Negocio negocio)
        {
            var lista = _context.Articulos.ToList();

            if (!String.IsNullOrEmpty(filtro.nombreFiltro))
            {
                lista = lista.ToList().Where(o => o.Nombre.ToLower().Contains(filtro.nombreFiltro.ToLower())).ToList();
            }

            lista = lista.Where(o => o.NegocioID == negocio.ID).ToList();
            List <Articulo> articulos = lista.ToList();

            return(filtro.paginar(articulos, filtro.paginaActual));
        }
        private ArticuloPaginadoViewModel ConstruirViewModel(FiltroArticulo filtro, List <Articulo> articulos)
        {
            List <ArticuloViewModel> listado = AutoMapper.Mapper.Map <List <ArticuloViewModel> >(articulos);

            PagedList.IPagedList <ArticuloViewModel> paginado = new PagedList.PagedList <ArticuloViewModel>(listado, filtro.Pagina, 30);

            var vm = new ArticuloPaginadoViewModel();

            vm.Articulos = paginado;

            vm.Filtro = filtro;

            vm.Filtro.TodosTags = _tagService.ObtenerTodos().Select(s => s.Descripcion);

            vm.Filtro.TodosTipos = _tipoService.ObtenerTodos().ToList();

            return(vm);
        }
        private System.Linq.Expressions.Expression <Func <Articulo, bool> > GenerarWhereBusqueda(FiltroArticulo filtro)
        {
            var predicado = PredicateBuilder.And <Articulo>(x => true, x => x.Activo == true && x.Privado == false);



            if (!String.IsNullOrEmpty(filtro.BusquedaGlobal))
            {
                predicado = PredicateBuilder.And(predicado, wh => wh.Contenido.Contains(filtro.BusquedaGlobal) ||
                                                 wh.Tipo.Descripcion.Contains(filtro.BusquedaGlobal) ||
                                                 wh.Tags.Any(a => a.Descripcion.Contains(filtro.BusquedaGlobal) ||
                                                             wh.Titulo.Contains(filtro.BusquedaGlobal)));
            }



            return(predicado);
        }
 public ArticuloGeneralModelAndView()
 {
     filtro           = new FiltroArticulo();
     listaDeArticulos = new List <Entity.Articulo>();
 }
Exemple #8
0
        public ActionResult Index(FiltroArticulo filtro)
        {
            var paginado = _articuloManager.FiltroPaginado(filtro);

            return(View(paginado));
        }