public async Task <IEnumerable <JobOfferDto> > GetOffersByFilter(JobOfferFilterDto filter) { using (UnitOfWorkProvider.Create()) { return(await jobOfferService.GetFiltered(filter)); } }
private static SimplePredicate FilterJobOfferLocation(JobOfferFilterDto filter) { if (string.IsNullOrWhiteSpace(filter.Location)) { return(null); } return(new SimplePredicate(nameof(JobOffer.Location), ValueComparingOperator.Equal, filter.Location)); }
private static SimplePredicate FilterJobOfferCompanyId(JobOfferFilterDto filter) { if (filter.CompanyId.Equals(Guid.Empty)) { return(null); } return(new SimplePredicate(nameof(JobOffer.CompanyId), ValueComparingOperator.Equal, filter.CompanyId)); }
/// <summary> /// Gets favorite job offers of given applicant /// </summary> /// <param name="applicantId">id of applicant</param> /// <returns></returns> public async Task <QueryResultDto <JobOfferDto, JobOfferFilterDto> > GetFavoriteJobOffersAsync(Guid applicantId) { using (UnitOfWorkProvider.Create()) { var jobOfferIds = await favoriteJobService.GetJobOfferIdsByApplicantIdAsync(applicantId); var filter = new JobOfferFilterDto { JobOfferIds = jobOfferIds }; var jobOfferListQueryResult = await jobOfferService.ListJobOfferAsync(filter); return(jobOfferListQueryResult); } }
public async Task <ActionResult> JobOfferList() { var company = await CompanyFacade.GetCompanyAccordingToUsernameAsync(User.Identity.Name); var filter = new JobOfferFilterDto { CompanyId = company.Id }; var result = await JobOfferFacade.GetJobOffersAsync(filter); var model = new JobOfferListModel { Filter = filter, JobOffers = new List <JobOfferDto>(result.Items) }; return(View(model)); }
private static CompositePredicate FilterJobOfferIds(JobOfferFilterDto filter) { if (filter.JobOfferIds == null) { return(null); } if (!filter.JobOfferIds.Any()) { filter.JobOfferIds = new[] { Guid.Empty }; } var idPredicates = new List <IPredicate>(filter.JobOfferIds .Select(id => new SimplePredicate( nameof(JobOffer.Id), ValueComparingOperator.Equal, id))); return(new CompositePredicate(idPredicates, LogicalOperator.OR)); }
protected override IQuery <JobOffer> ApplyWhereClause(IQuery <JobOffer> query, JobOfferFilterDto filter) { var definedPredicates = new List <IPredicate>(); if (!string.IsNullOrWhiteSpace(filter.Name)) { definedPredicates.Add(new SimplePredicate(nameof(JobOffer.Name), ValueComparingOperator.StringContains, filter.Name)); } if (filter.EmployerId != null) { definedPredicates.Add(new SimplePredicate(nameof(JobOffer.EmployerId), ValueComparingOperator.Equal, filter.EmployerId)); } return(MergePredicates(definedPredicates)); }
protected override IQuery <JobOffer> ApplyWhereClause(IQuery <JobOffer> query, JobOfferFilterDto filter) { var definedPredicates = new List <IPredicate>(); AddIfDefined(FilterJobOfferCompanyId(filter), definedPredicates); AddIfDefined(FilterJobOfferPosition(filter), definedPredicates); AddIfDefined(FilterJobOfferLocation(filter), definedPredicates); AddIfDefined(FilterJobOfferIds(filter), definedPredicates); if (definedPredicates.Count == 0) { return(query); } if (definedPredicates.Count == 1) { return(query.Where(definedPredicates.First())); } var wherePredicate = new CompositePredicate(definedPredicates); return(query.Where(wherePredicate)); }
/// <summary> /// Gets job offers according to filter /// </summary> /// <param name="filter">job offers filter</param> /// <returns></returns> public async Task <QueryResultDto <JobOfferDto, JobOfferFilterDto> > GetJobOffersAsync(JobOfferFilterDto filter) { using (UnitOfWorkProvider.Create()) { if (filter.KeywordNumbers != null) { filter.JobOfferIds = await keywordsJobOfferService.GetJobOfferIdsByKeywordNumbersAsync(filter.KeywordNumbers); } var jobOfferListQueryResult = await jobOfferService.ListJobOfferAsync(filter); return(jobOfferListQueryResult); } }