Пример #1
0
        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));
        }