Ejemplo n.º 1
0
 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);
            }
        }
Ejemplo n.º 5
0
        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);
            }
        }