public List<GroupByRegionModel> GroupByRegion(string region, DateTime start, DateTime end, int pageIndex = 0, int pageSize = 20) { List<GroupByRegionModel> result = new List<GroupByRegionModel>(); if (region != null) region = region.Trim(); MonitorDataRepository mr = new MonitorDataRepository(); var dbResult = mr.GroupByRegion(region, start, end); if (dbResult != null && dbResult.Count > 0) { GroupByRegionModel tmp = new GroupByRegionModel(); foreach (var item in dbResult) { if (item.Region != tmp.Region) { tmp = new GroupByRegionModel(); tmp.Region = item.Region; result.Add(tmp); } if (item.Status == 1) { tmp.StatusNormalCount = item.Count; } else if (item.Status == 2) { tmp.StatusUnknownCount = item.Count; } else if (item.Status == 3) { tmp.StatusExceptionCount = item.Count; } } } result = result.OrderByDescending(r => r.Total).ToList(); result = result.Skip(pageSize * pageIndex).Take(pageSize).ToList(); return result; }