Esempio n. 1
0
 /// <summary>
 /// Seeker side: Searches for all positions matching the specified criteria.
 /// </summary>
 /// <returns></returns>
 public List <Position> SearchPosition(PositionsSearchCriteria criteria)
 {
     using (var db = new JobyJobsDB2())
     {
         string searchTxtLowered = criteria.SearchText?.ToLower() ?? null;
         string locationLowered  = criteria.Location?.ToLower() ?? null;
         int?   salaryMin        = criteria.SalaryPerMonth != null
   ? (criteria.SalaryPerMonth.Value ? criteria.Salary : criteria.Salary / 12)
   : //convert to month
                                   null;
         IQueryable <position> query = db.positions.Where(item =>
                                                          (searchTxtLowered == null || item.title.ToLower().Contains(searchTxtLowered) ||
                                                           item.description.ToLower().Contains(searchTxtLowered)) &&                          //optional:by title or description
                                                          (criteria.ProfessionId == null || item.profession_id == (criteria.ProfessionId)) && //optional:by field
                                                          (criteria.FieldId == null || item.profession.field_id == (criteria.FieldId)) &&     //optional:by profession
                                                          (criteria.PositionType == null ||
                                                           item.position_type == ((int?)criteria.PositionType)) &&                            //optional:by position type
                                                          (salaryMin == null || item.salary_min > salaryMin) &&                               //optional:by salary
                                                          (locationLowered == null || item.location.ToLower().Contains(locationLowered)) &&   //optional:by location
                                                          item.status_id == (int)Enums.PositionStatuses.OnAir);
         var sql = query.ToString();
         var res = query.ToSelectedList(BusinessObjectsExtensions.ToBusiness);
         return(res);
     }
 }
Esempio n. 2
0
 public IActionResult SearchPosition(PositionsSearchCriteria criteria)
 {
     return(Json(_positionsBL.SearchPosition(criteria)));
 }