Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }