public async Task <int> GetMyCountAsync(GetMyProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetMyProjectsQuery(db, filter).CountAsync()); } }
public async Task <IEnumerable <Projects> > GetMyAsync(GetMyProjectsFilter filter) { using (var db = new DeadlineContext()) { return(await GetMyProjectsQuery(db, filter) .OrderBy(project => project.Id) .Skip(filter.PageSize * (filter.PageNumber - 1)) .Take(filter.PageSize) .ToListAsync()); } }
public async Task <IHttpActionResult> GetMy(int companyId, int pageNumber) { var filter = new GetMyProjectsFilter { CompanyId = companyId, PageNumber = pageNumber, PageSize = PageSize }; IEnumerable <Projects> dbProjects = await _projectsRepository.GetMyAsync(filter); int projectCount = await _projectsRepository.GetMyCountAsync(filter); var response = new GetMyResponse(projectCount, PageSize) { Projects = dbProjects.Select(project => project.Map <Projects, Project>()) }; return(Ok(response)); }
private static IQueryable <Projects> GetMyProjectsQuery(DeadlineContext db, GetMyProjectsFilter filter) { return(db.Projects .Where(project => project.CompanyId.HasValue && project.CompanyId.Value == filter.CompanyId)); }