public HttpResponseMessage SearchByKeyword([FromUri] JobPostingSearchRequest searchRequest) { ItemsResponse <JobPosting> response = new ItemsResponse <JobPosting>(); response.Items = _jobPostingService.SearchByKeyword(searchRequest); return(Request.CreateResponse(HttpStatusCode.OK, response)); }
public List <JobPosting> SearchByKeyword(JobPostingSearchRequest searchRequest) { List <JobPosting> list = null; DataProvider.ExecuteCmd(GetConnection, "dbo.JobPosting_SearchByKeyword", inputParamMapper : delegate(SqlParameterCollection paramCollection) { paramCollection.AddWithValue("@SearchString", searchRequest.SearchString ?? String.Empty); paramCollection.AddWithValue("@CurrentPage", searchRequest.CurrentPage); paramCollection.AddWithValue("@ItemsPerPage", searchRequest.ItemsPerPage); paramCollection.AddWithValue("@Distance", searchRequest.Distance); paramCollection.AddWithValue("@Compensation", searchRequest.Compensation); paramCollection.AddWithValue("@FullPartId", searchRequest.FullPartId); paramCollection.AddWithValue("@ContractPermanentId", searchRequest.ContractPermanentId); paramCollection.AddWithValue("@ExperienceLevelId", searchRequest.ExperienceLevelId); paramCollection.AddWithValue("@Latitude", searchRequest.Latitude); paramCollection.AddWithValue("@Longitude", searchRequest.Longitude); paramCollection.AddWithValue("@IsDeploy", searchRequest.IsDeploy); DataTable JobTagIdArray = new DataTable(); JobTagIdArray.Columns.Add("JobTagId", typeof(Int32)); if (searchRequest.JobTagIds != null) { for (int i = 0; i < searchRequest.JobTagIds.Count; i++) { JobTagIdArray.Rows.Add(searchRequest.JobTagIds[i]); } } SqlParameter JobTagIdTable = new SqlParameter(); JobTagIdTable.ParameterName = "@JobTagIds"; JobTagIdTable.SqlDbType = System.Data.SqlDbType.Structured; JobTagIdTable.Value = JobTagIdArray; paramCollection.Add(JobTagIdTable); }, map : delegate(IDataReader reader, short set) { switch (set) { case 0: JobPosting jobPosting = MapJobPosting(reader); if (list == null) { list = new List <JobPosting>(); } list.Add(jobPosting); break; case 1: int jobPostingId = 0; JobTag jobTag = MapJobTagList(reader, out jobPostingId); JobPosting jp = list.Find(item => item.Id == jobPostingId); if (jp.JobTags == null) { jp.JobTags = new List <JobTag>(); } jp.JobTags.Add(jobTag); break; } } ); return(list); }