public List<GroupByAccountModel> GroupByAccount(string userName,DateTime start, DateTime end,int pageIndex = 0, int pageSize = 20) { List<GroupByAccountModel> result = new List<GroupByAccountModel>(); if (userName != null) userName = userName.Trim(); MonitorDataRepository mr = new MonitorDataRepository(); var dbResult = mr.GroupByAccount(userName, start,end); if (dbResult != null && dbResult.Count > 0) { GroupByAccountModel tmp = new GroupByAccountModel(); foreach (var item in dbResult) { if (item.UserName != tmp.UserName) { tmp = new GroupByAccountModel(); tmp.UserName = item.UserName; 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; }