public async Task <List <JobMessage> > GetJobsAsync(JobSearchRequestMessage requestMessage) { var query = GenerateJobSearchQuery(requestMessage); var result = await query.Include(item => item.City) .Include(item => item.DictionaryEmploymentType) .Include(item => item.DictionaryJobCategory) .ToListAsync(); return(_mapper.Map <List <JobMessage> >(result)); }
private IQueryable <Job> GenerateJobSearchQuery(JobSearchRequestMessage requestMessage) { var query = Context.Job.Where(item => item.IsActive && !item.IsDeleted); if (requestMessage.CityIds.Any()) { query = query.Where(item => requestMessage.CityIds.Contains(item.CityId)); } if (requestMessage.CategoryIds.Any()) { query = query.Where(item => requestMessage.CategoryIds.Contains(item.DictionaryJobCategoryId)); } if (requestMessage.EmploymentIds.Any()) { query = query.Where(item => requestMessage.EmploymentIds.Contains(item.DictionaryEmploymentTypeId)); } return(query); }