public async Task <IActionResult> GetPagedModuleRights([FromQuery] ModuleRightsParams moduleRightsParams) { var modules = await moduleRepository.GetPagedModuleRights(moduleRightsParams); var result = mapper.Map <IEnumerable <ViewModuleRightsResource> >(modules); Response.AddPagination(modules.CurrentPage, modules.PageSize, modules.TotalCount, modules.TotalPages); return(Ok(result)); }
public async Task <PagedList <ModuleRight> > GetPagedModuleRights(ModuleRightsParams moduleRightsParams) { var modules = context.ModuleRight.AsQueryable(); // filter if (!string.IsNullOrEmpty(moduleRightsParams.Code)) { modules = modules.Where(m => m.Code.Contains(moduleRightsParams.Code, StringComparison.OrdinalIgnoreCase)); } if (!string.IsNullOrEmpty(moduleRightsParams.Description)) { modules = modules.Where(m => m.Description.Contains(moduleRightsParams.Description, StringComparison.OrdinalIgnoreCase)); } // sort if (moduleRightsParams.isDescending) { if (!string.IsNullOrEmpty(moduleRightsParams.OrderBy)) { switch (moduleRightsParams.OrderBy.ToLower()) { case "code": modules = modules.OrderByDescending(m => m.Code); break; case "description": modules = modules.OrderByDescending(m => m.Description); break; default: modules = modules.OrderByDescending(m => m.Code); break; } } else { modules = modules.OrderByDescending(m => m.Code); } } else { if (!string.IsNullOrEmpty(moduleRightsParams.OrderBy)) { switch (moduleRightsParams.OrderBy.ToLower()) { case "code": modules = modules.OrderBy(m => m.Code); break; case "description": modules = modules.OrderBy(m => m.Description); break; default: modules = modules.OrderBy(m => m.Code); break; } } else { modules = modules.OrderBy(m => m.Code); } } return(await PagedList <ModuleRight> .CreateAsync(modules, moduleRightsParams.PageNumber, moduleRightsParams.PageSize)); }