public virtual List <Project> GetByFilter(TaskFilter filter) { var listProjects = new List <Project>(); while (true) { var projects = projectDao.GetByFilter(filter).Where(CanRead).ToList(); if (filter.LastId != 0) { var lastProjectIndex = projects.FindIndex(r => r.ID == filter.LastId); if (lastProjectIndex >= 0) { projects = projects.SkipWhile((r, index) => index <= lastProjectIndex).ToList(); } } listProjects.AddRange(projects); if (filter.Max <= 0 || filter.Max > 150000) { break; } listProjects = listProjects.Take((int)filter.Max).ToList(); if (listProjects.Count == filter.Max || projects.Count == 0) { break; } if (listProjects.Count != 0) { filter.LastId = listProjects.Last().ID; } filter.Offset += filter.Max; } return(listProjects); }
public virtual List <Project> GetByFilter(TaskFilter filter) { return(projectDao.GetByFilter(filter, ProjectSecurity.CurrentUserAdministrator, ProjectSecurity.IsPrivateDisabled)); }
public virtual List <Project> GetByFilter(TaskFilter filter) { var isAdmin = ProjectSecurity.IsAdministrator(SecurityContext.CurrentAccount.ID); return(projectDao.GetByFilter(filter, isAdmin)); }