public IList <object[]> BuildUsersWorkload(TaskFilter filter) { return(TaskEngine.GetByFilterCountForStatistic(filter).Select(r => new object[] { r.UserId, 0, r.TasksOpen, r.TasksClosed }).ToList()); }
public IList <object[]> BuildUsersWorkload(TaskFilter filter) { if (filter.ViewType == 0) { return(TaskEngine.GetByFilterCountForStatistic(filter).Select(r => new object[] { DisplayUserSettings.GetFullUserName(CoreContext.UserManager.GetUsers(r.UserId), false), r.TasksOpen, r.TasksClosed, r.TasksTotal, CoreContext.UserManager.GetUserGroups(r.UserId).Select(x => x.Name) }).ToList()); } var tasks = TaskEngine.GetByFilter(filter).FilterResult; var projects = tasks.Select(r => r.Project).Distinct(); var result = new List <object[]>(); foreach (var pr in projects) { var prTasks = tasks.Where(r => r.Project.ID == pr.ID && r.Responsibles.Count > 0).ToList(); if (!prTasks.Any()) { continue; } var users = filter.ParticipantId.HasValue ? new List <Guid> { filter.ParticipantId.Value } : prTasks.SelectMany(r => r.Responsibles).Distinct(); var usersResult = new List <object[]>(); foreach (var user in users) { var tasksOpened = prTasks.Count(r => r.Responsibles.Contains(user) && r.Status == TaskStatus.Open); var tasksClosed = prTasks.Count(r => r.Responsibles.Contains(user) && r.Status == TaskStatus.Closed); usersResult.Add(new object[] { DisplayUserSettings.GetFullUserName(CoreContext.UserManager.GetUsers(user), false), tasksOpened, tasksClosed, tasksOpened + tasksClosed }); } result.Add(new object[] { pr.Title, usersResult }); } return(result); }
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(ProjectEngine.GetTeam(filter.ProjectIds).Select(r => r.ID).Distinct()); } else if (!filter.HasProjectIds) { users.AddRange(ProjectEngine.GetTeam(ProjectEngine.GetAll().Select(r => r.ID).ToList()).Select(r => r.ID).Distinct()); } var data = TaskEngine.GetByFilterCountForStatistic(filter); foreach (var row in data) { users.Remove(row.UserId); if (row.TasksOpen == 0) { result.Add(new object[] { row.UserId, 0, row.TasksOpen, row.TasksClosed }); } } result.AddRange(users.Select(u => new object[] { u, 0, 0, 0 })); return(result.Select(x => new[] { DisplayUserSettings.GetFullUserName(CoreContext.UserManager.GetUsers((Guid)x[0]), false), x[2], x[3] }).ToList()); }