public Result <GetModuleListResponse> GetSortedFilteredList(GetModuleListRequest input) { try { var modules = _moduleRepo.GetAsync().FilterSortAndGetPage( config: input.AsFilterSortPageConfig(), args: input, itemCount: out int itemCount); var results = new GetModuleListResponse { ModuleList = modules.Select(ModuleListResponse.GetFromModule).ToArray() }; return(Result <GetModuleListResponse> .Ok(results, itemCount)); } catch (SqlException) { return(Errors.Module.GetListModuleDatabaseError); } }
public IActionResult GetList([FromQuery] GetModuleListRequest request) { return(Ok(_moduleService.GetSortedFilteredList(request))); }
public static IFilterSortPageConfig <Module, GetModuleListRequest, int> AsFilterSortPageConfig(this GetModuleListRequest input) => new FilterSortPageConfigBuilder <Module, GetModuleListRequest, int>( primaryKeySelector: n => n.Id, pageSize: input.pageSize, pageNumber: input.pageNumber) .WithFiltering(FILTERS) .WithSorting( sortCriteria: input.sortCriteria ?? DEFAULT_SORT_CRITERIA, orderByStringKeySelectors: ORDER_BY_STRING ) .Build();