public async Task <PagedResult <ProductCategoryViewModel> > GetPagings(GetManageProductCategoryPagingRequest request) { var result = await GetAsync <PagedResult <ProductCategoryViewModel> >( "/api/categories/paging?pageIndex=" + $"{request.PageIndex}&pageSize={request.PageSize}" + $"&keyword={request.Keyword}" + $"&languageId={ request.LanguageId}"); return(result); }
public async Task <PagedResult <ProductCategoryViewModel> > GetAllPaging(GetManageProductCategoryPagingRequest request) { //1. Select join var query = from c in _context.Categories join ct in _context.CategoryTranslations on c.Id equals ct.CategoryId //join pic in _context.ProductInCategories on c.Id equals pic.CategoryId where ct.LanguageId == request.LanguageId select new { c, ct }; //2. filter if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.ct.Name.Contains(request.Keyword)); } //3. Paging int totalRow = await query.CountAsync(); var data = await query.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new ProductCategoryViewModel() { Id = x.ct.Id, Name = x.ct.Name, CategoryId = x.ct.CategoryId, LanguageId = x.ct.LanguageId, SeoAlias = x.ct.SeoAlias, SeoDescription = x.ct.SeoDescription, SeoTitle = x.ct.SeoTitle, SortOrder = x.c.SortOrder, IsShowOnHome = x.c.IsShowOnHome, ParentId = x.c.ParentId }).ToListAsync(); //4. Select and projection var pagedResult = new PagedResult <ProductCategoryViewModel>() { TotalRecords = totalRow, PageIndex = request.PageIndex, PageSize = request.PageSize, Items = data }; return(pagedResult); }
public async Task <IActionResult> Index(string keyword, int pageIndex = 1, int pageSize = 5) { var languageId = HttpContext.Session.GetString(SystemConstants.AppSettings.DefaultLanguageId); var request = new GetManageProductCategoryPagingRequest() { Keyword = keyword, PageIndex = pageIndex, PageSize = pageSize, LanguageId = languageId }; var data = await _categoryApiClient.GetPagings(request); ViewBag.Keyword = keyword; var categories = await _categoryApiClient.GetAll(languageId); // if (TempData["result"] != null) // { // ViewBag.SuccessMsg = TempData["result"]; // } TempData["TotalCategorys"] = data.TotalRecords; return(View(data)); }
public async Task <IActionResult> GetAllPaging([FromQuery] GetManageProductCategoryPagingRequest request) { var product = await _categoryService.GetAllPaging(request); return(Ok(product)); }