Esempio n. 1
0
        public virtual List <Project> GetLast(ProjectStatus status, int max)
        {
            var offset       = 0;
            var lastProjects = new List <Project>();
            var projects     = projectDao.GetLast(status, offset, max)
                               .Where(CanRead)
                               .ToList();

            lastProjects.AddRange(projects);

            while (lastProjects.Count < max)
            {
                offset   = offset + max;
                projects = projectDao.GetLast(status, offset, max);

                if (projects.Count == 0)
                {
                    return(lastProjects);
                }
                projects = projects
                           .Where(CanRead)
                           .ToList();

                lastProjects.AddRange(projects);
            }

            return(lastProjects.Count == max ? lastProjects : lastProjects.GetRange(0, max));
        }
Esempio n. 2
0
        public IEnumerable <Project> GetLast(ProjectStatus status, int max)
        {
            var offset       = 0;
            var lastProjects = new List <Project>();

            do
            {
                var projects = projectDao.GetLast(status, offset, max);

                if (!projects.Any())
                {
                    return(lastProjects);
                }

                lastProjects.AddRange(projects.Where(canReadDelegate));
                offset = offset + max;
            } while (lastProjects.Count < max);

            return(lastProjects.Count == max ? lastProjects : lastProjects.GetRange(0, max));
        }