private IQueryable <CommissionRequest> Filter(IQueryable <CommissionRequest> query, SearchCommissionRequests search)
        {
            if (search == null)
            {
                return(query);
            }


            if (search.ProjectId.HasValue)
            {
                query = query.Where(s => s.ProjectId == search.ProjectId);
            }
            if (search.QuoteId.HasValue)
            {
                query = query.Where(s => s.QuoteId == search.QuoteId);
            }

            if (search.PendingRequests)
            {
                query = query.Where(s => s.CommissionRequestStatusTypeId == (byte)CommissionRequestStatusTypeEnum.Pending);
            }

            if (!string.IsNullOrWhiteSpace(search.Filter))
            {
                query = query.Where(s => s.Notes.Contains(search.Filter) || s.ResponseNotes.Contains(search.Filter));
            }

            return(query);
        }
        public IQueryable <CommissionRequest> QueryCommissionRequestsViewableBySearch(UserSessionModel user, SearchCommissionRequests search)
        {
            var query = QueryCommissionRequestsViewable(user);

            query = Filter(query, search);

            if (search != null && search.ReturnTotals)
            {
                search.TotalRecords = query.Count();
            }

            query = Sort(query, search);

            query = Paging(user, query, search); // Must be Last

            return(query);
        }