public IList <object[]> BuildUsersWithoutActiveTasks(TaskFilter filter) { var result = new List <object[]>(); var users = new List <Guid>(); if (filter.UserId != Guid.Empty) { users.Add(filter.UserId); } else if (filter.DepartmentId != Guid.Empty) { users.AddRange(CoreContext.UserManager.GetUsersByGroup(filter.DepartmentId).Select(u => u.ID)); } else if (filter.HasProjectIds) { users.AddRange(factory.ProjectEngine.GetTeam(filter.ProjectIds).Select(r => r.ID)); } else if (!filter.HasProjectIds) { users.AddRange(CoreContext.UserManager.GetUsers().Select(u => u.ID)); } foreach (var row in reportDao.BuildUsersStatisticsReport(filter)) { users.Remove((Guid)row[0]); if ((long)row[1] == 0 && (long)row[2] == 0) { result.Add(row); } } result.AddRange(users.Select(u => new object[] { u, 0, 0, 0 })); return(result); }
private IList <object[]> BuildUsersWithoutActiveTasks(ReportFilter filter) { var result = new List <object[]>(); var users = new List <Guid>(); if (filter.UserId != Guid.Empty) { users.Add(filter.UserId); } else if (filter.DepartmentId != Guid.Empty) { users.AddRange(CoreContext.UserManager.GetUsersByGroup(filter.DepartmentId).Select(u => u.ID)); } else if (!filter.HasProjectIds) { users.AddRange(CoreContext.UserManager.GetUsers().Select(u => u.ID)); } else { filter.ProjectIds.ForEach(id => users.AddRange(projectDao.GetTeam(id).Select(r => r.ID))); } foreach (object[] row in reportDao.BuildUsersStatisticsReport(filter)) { users.Remove((Guid)row[0]); if ((long)row[1] == 0 && (long)row[2] == 0) { result.Add(row); } } foreach (var u in users) { result.Add(new object[] { u, 0, 0, 0 }); } return(result); }