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))); } }
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>()); } }