public async Task <int> GetUnemployedCountAsync(GetUnemployedFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnemployedQuery(db, filter).CountAsync()); } }
private static IQueryable <Employees> GetUnemployedQuery(DeadlineContext db, GetUnemployedFilter filter) { return(db.Employees.Where(employee => employee.CompanyId == null && filter.ExperienceIds.Contains(employee.ExperienceId) && filter.TypesIds.Contains(employee.TypeId))); }
public async Task <IEnumerable <Employees> > GetUnemployedAsync(GetUnemployedFilter filter) { using (var db = new DeadlineContext()) { return(await GetUnemployedQuery(db, filter) .OrderBy(employee => employee.Id) .Skip(filter.PageSize * (filter.PageNumber - 1)) .Take(filter.PageSize) .ToListAsync()); } }
public async Task <IHttpActionResult> GetUnemployed( [FromUri] int[] typesIds, [FromUri] int[] experienceIds, int pageNumber) { var filter = new GetUnemployedFilter { ExperienceIds = experienceIds, TypesIds = typesIds, PageNumber = pageNumber, PageSize = PageSize }; IEnumerable <Employees> employees = await _employeesRepository.GetUnemployedAsync(filter); int employeesMatchingToFilter = await _employeesRepository.GetUnemployedCountAsync(filter); var response = new GetUnemployedResponse(employeesMatchingToFilter, PageSize) { Employees = employees.Select(e => e.Map <Employees, Employee>()) }; return(Ok(response)); }