public async Task <int> GetUnassignedCountAsync(GetUnessignedProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnassignedAsyncQuery(db, filter).CountAsync()); } }
public async Task <IHttpActionResult> GetUnassigned( int pageNumber, int roundsToFinishMin, int roundsToFinishMax) { var filter = new GetUnessignedProjectsFilter { PageNumber = pageNumber, PageSize = PageSize, RoundsToFinish = new Range <int> { From = roundsToFinishMin, To = roundsToFinishMax } }; IEnumerable <Projects> projects = await _projectsRepository.GetUnassignedAsync(filter); int projectsMatchingToFilter = await _projectsRepository.GetUnassignedCountAsync(filter); var response = new GetUnassignedProjectsResponse(projectsMatchingToFilter, PageSize) { Projects = projects.Select(project => project.Map <Projects, Project>()) }; return(Ok(response)); }
private static IQueryable <Projects> GetUnassignedAsyncQuery(DeadlineContext db, GetUnessignedProjectsFilter filter) { return(db.Projects.Where(project => project.CompanyId == null && filter.RoundsToFinish.From <= project.RoundsToFinish && project.RoundsToFinish <= filter.RoundsToFinish.To)); }
public async Task <IEnumerable <Projects> > GetUnassignedAsync(GetUnessignedProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnassignedAsyncQuery(db, filter) .OrderBy(project => project.Id) .Skip(filter.PageSize * (filter.PageNumber - 1)) .Take(filter.PageSize) .ToListAsync()); } }