示例#1
0
        public async Task <IActionResult> Filter([FromBody] CandidateFilter filter)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(GetModelValidationResponse <object>()));
            }

            try
            {
                var result = await candidateService.GetByFilterAsync(filter);

                return(Ok(GetResponse(result)));
            }
            catch (System.Exception ex)
            {
                log.Error(ex.Message, ex);

                return(Ok(GetExceptionResponse <object>(ex)));
            }
        }
示例#2
0
        public ICollection <Candidate> SelectFilteredOrdered(CandidateFilter filter,
                                                             CandidateOrdering ordering)
        {
            using (ISession session = NHibernateHelper.OpenSession())
            {
                var criteria = session.CreateCriteria <Vacancy>("v");

                Util.AddStringRestrictions(criteria, filter.TitleWords, "Title");

                criteria.Add(Restrictions.Between
                                 ("Salary", filter.SalaryLowerBound, filter.SalaryUpperBound));

                var join = criteria.CreateCriteria("Skills");
                criteria.Add(Restrictions.InG("Title", join.List <Skill>()));

                if (!ordering.Salary)
                {
                    criteria.AddOrder(Order.Desc("Salary"));
                }

                return(criteria.List <Candidate>());
            }
        }