FundraisingMenu.SearchServices.FundraisingMenuSearchServices.SearchSortAndFilter C# (CSharp) Method

SearchSortAndFilter() public method

public SearchSortAndFilter ( DataTableParameters query ) : DataTableResult
query FundraisingMenu.Integration.DataTableParameters
return DataTableResult
        public DataTableResult<FundraisingMenuResult> SearchSortAndFilter(DataTableParameters query)
        {
            DataTableResult<FundraisingMenuResult> result = GetAllFundraisingMenuProjects();

            //  Add virtual projects for packages containing no projects.
            AddVirtualProjects(result.data);

            // Expand by package.
            result.data = ExpandByPackage(result.data);

            result.draw = query.draw;
            result.recordsTotal = result.data.Where(r => r.HubId != null).Count();

            // Search
            result.data = result.data.Where(r => RecordMatch(r, query)).ToList();
            result.recordsFiltered = result.data.Where(r => r.HubId != null).Count();

            // Order
            result.data = OrderProjectRecords(result.data, query);

            // Page
            result.data = PageResults(query, result.data);
            return result;
        }

Usage Example

 public ActionResult SearchData(DataTableParameters parameters)
 {
     FundraisingMenuSearchServices _fmss = new FundraisingMenuSearchServices();
     DataTableResult<FundraisingMenuResult> result = _fmss.SearchSortAndFilter(parameters);
     return Json(result);
 }