// GET: Categories
        public async Task <IActionResult> Index(PagingParamters model)
        {
            ViewData["CurrentSort"]  = model.SortOrder;
            ViewData["NameSortParm"] = String.IsNullOrEmpty(model.SortOrder) ? "name_desc" : "";
            if (model.SearchString != null)
            {
                model.PageNumber = 1;
            }
            else
            {
                model.SearchString = model.CurrentFilter;
            }
            ViewData["CurrentFilter"] = model.SearchString;

            var Listcategorias = await _context.Categories.ToListAsync();

            if (!String.IsNullOrEmpty(model.SearchString))
            {
                Listcategorias = Listcategorias.Where(x => x.Name.Contains(model.SearchString) ||
                                                      x.Description.Contains(model.SearchString)).ToList();
            }

            switch (model.SortOrder)
            {
            case "name_desc":
                Listcategorias = Listcategorias.OrderByDescending(s => s.Name).ToList();
                break;

            default:
                Listcategorias = Listcategorias.OrderBy(s => s.Name).ToList();
                break;
            }

            if (model.PageNumber == 0)
            {
                model.PageNumber = 1;
            }
            if (model.PageSize == 0)
            {
                model.PageSize = 10;
            }

            var paginationList = await Task.FromResult(new PaginationList <Category>(model.PageNumber, model.PageSize));

            return(View(paginationList.Read(Listcategorias)));
        }
예제 #2
0
        public async Task <IActionResult> Index(PagingParamters model)
        {
            ViewData["CurrentSort"]  = model.SortOrder == null? "": model.SortOrder;
            ViewData["NameSortParm"] = String.IsNullOrEmpty(model.SortOrder) ? "name_desc" : "";
            ViewData["DateSortParm"] = model.SortOrder == "Date" ? "date_desc" : "Date";
            if (model.SearchString != null)
            {
                model.PageNumber = 1;
            }
            else
            {
                model.SearchString = model.CurrentFilter;
            }
            ViewBag.categoryFilter = model.CategoryFilter;
            ViewBag.CurrentFilter  = model.SearchString;
            var listBook = await _context.Books.Include(b => b.Category).Where(x => !x.Excluded).ToListAsync();

            //listBook = listBook.AsQueryable();
            if (!String.IsNullOrEmpty(model.CategoryFilter))
            {
                listBook = listBook.Where(x => x.CategoryId.ToString() == model.CategoryFilter).ToList();
            }
            if (!String.IsNullOrEmpty(model.SearchString))
            {
                listBook = listBook.Where(x => x.Title.Contains(model.SearchString) ||
                                          x.Description.Contains(model.SearchString)).ToList();
            }
            if (model.RentedFilter == "True")
            {
                listBook = listBook.Where(x => x.Rented).ToList();
            }
            else if (model.RentedFilter == "False")
            {
                listBook = listBook.Where(x => !x.Rented).ToList();
            }

            switch (model.SortOrder)
            {
            case "name_desc":
                listBook = listBook.OrderByDescending(s => s.Title).ToList();
                break;

            case "Date":
                listBook = listBook.OrderBy(s => s.DateCriation).ToList();
                break;

            case "date_desc":
                listBook = listBook.OrderByDescending(s => s.DateCriation).ToList();
                break;

            default:
                listBook = listBook.OrderBy(s => s.Title).ToList();
                break;
            }

            if (model.PageNumber == 0)
            {
                model.PageNumber = 1;
            }
            if (model.PageSize == 0)
            {
                model.PageSize = 10;
            }
            ViewBag.Categorys    = new SelectList(await _context.Categories.OrderBy(c => c.Name).ToListAsync(), "Id", "Name", model.CategoryFilter);
            ViewBag.rentedOption = new SelectList(SelectListOptionsViewModel.GetList(), "Key", "Value", model.RentedFilter);
            var paginationList = await Task.FromResult(new PaginationList <Book>(model.PageNumber, model.PageSize));

            return(View(paginationList.Read(listBook)));
        }