public IHttpActionResult QueryWithManage(int currentPage, int pageSize) { BaseRequest <ReportFilter> request = new BaseRequest <ReportFilter>(); request.CurrentPage = currentPage; request.PageSize = pageSize; request.Data.OrgId = SecurityHelper.CurrentPrincipal.OrgId; request.Data.Status = true; BaseResponse <IList <ReportModel> > response = service.QueryReport(request); if (response.RecordsCount == 0) { request.Data.OrgId = "000"; request.Data.Status = null; response = service.QueryReport(request); } BaseResponse <List <ReportSetModel> > newResponse = new BaseResponse <List <ReportSetModel> >(); if (response.RecordsCount > 0) { newResponse.Data = new List <ReportSetModel>(); var group = response.Data.ToLookup(it => it.MajorType); foreach (var item in group) { ReportSetModel newItem = new ReportSetModel(); newItem.MajorType = item.Key; newItem.Items = item.OrderBy(it => it.Name).ToList(); newResponse.Data.Add(newItem); } } return(Ok(newResponse)); }