public Resp_Query <RecordMGrade> Query(RMG_Query request) { var response = new Resp_Query <RecordMGrade>(); var records = _recordMGradeRepository.GetAll(); records.ToMaybe() .Do(t => request.Verify()) .DoWhen(t => !string.IsNullOrEmpty(request.QueryStr), d => records = records.Where(s => s.Name.Contains(request.QueryStr))); response.totalCounts = records.Count(); response.totalRows = (int)Math.Ceiling((double)response.totalCounts / request.PgSize); if (!string.IsNullOrEmpty(request.Order)) { records = records.DataSorting(request.Order, request.Esc); } else { records = records.OrderByDescending(t => t.ID); } var entities = records.Skip(request.PgSize * (request.PgIndex - 1)).Take(request.PgSize).ToList(); response.entities = entities; return(response); }