//int pageNumber,int pageSize,string[] orderBy,string whereClouse,object[] whereClouseArguments public UserActivitySummaryDataPageResponse Search(SearchSpecification <UserActivity> searchObject) { var query = GetDefaultQuery(); if (searchObject.WhereClouse != null) { query = query.Where(searchObject.WhereClouse); } var summaryObject = ReadOnlyRepository.TakeSummary(query); query = ApplySortingRule(query, searchObject, x => x.Id); query = ApplyPagingRule(query, searchObject); return(new UserActivitySummaryDataPageResponse(query, searchObject.PageNumber, summaryObject.TotalActivityCount, false) { Summary = summaryObject, }); }