public SearchResult <ReportProblemModel> SearchReportProblem(ReportProblemCriteria criteria) { var result = new SearchResult <ReportProblemModel>(); var query = reportProblemRepository.GetAll().Include(t => t.Pump).Include(t => t.Pump) .Where(FilterReportProblem(criteria)); result.ItemCount = query.Count(); query = query.Sort(criteria.Sorting, new Sorting("ReportNo", SortDirection.Descending)); query = query.Page(criteria.Paging); result.ResultData = query.Select(reportProblemToModel).ToList(); return(result); }
private Expression <Func <ReportProblem, bool> > FilterReportProblem(ReportProblemCriteria criteria) { Expression <Func <ReportProblem, bool> > result = t => true; if (!string.IsNullOrWhiteSpace(criteria.ReportNo)) { result = result.And(t => EF.Functions.Like(t.ReportNo, $"%{criteria.ReportNo}%")); } if (!string.IsNullOrWhiteSpace(criteria.Keyword)) { result = result.And(t => EF.Functions.Like(t.Title, $"%{criteria.Keyword}%") || EF.Functions.Like(t.Detail, $"%{criteria.Keyword}%")); } if (criteria.Status.HasValue) { result = result.And(t => t.StatusValue == (byte)criteria.Status); } return(result); }
public IActionResult SearchReportProblem([FromQuery] ReportProblemCriteria criteria) { var result = reportProblemService.SearchReportProblem(criteria); return(Ok(new SuccessResult(result))); }