Exemple #1
0
 public async Task <int> GetUnassignedCountAsync(GetUnessignedProjectsFilter filter)
 {
     using (var db = new DeadlineContext())
     {
         return(await GetUnassignedAsyncQuery(db, filter).CountAsync());
     }
 }
Exemple #2
0
        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));
        }
Exemple #3
0
 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));
 }
Exemple #4
0
 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());
     }
 }