public async Task <List <ResumeRequest> > SearchResume(SearchResumeRequest searchRequest) { var filter = Builders <Resume> .Filter.Empty; if (!string.IsNullOrEmpty(searchRequest.Title)) { filter = filter & Builders <Resume> .Filter.Where(x => x.Title.ToLower().Contains(searchRequest.Title.ToLower())); } if (!string.IsNullOrEmpty(searchRequest.Level)) { filter = filter & Builders <Resume> .Filter.Where(x => x.Purpose.LevelOfWork.Id.Equals(searchRequest.Level)); } if (searchRequest.LocationIds != null && searchRequest.LocationIds.Length > 0) { foreach (string locationId in searchRequest.LocationIds) { filter = filter & Builders <Resume> .Filter.Where(x => x.ContactInfo.City.Id.Contains(locationId)); } } if (searchRequest.CategoryIds != null && searchRequest.CategoryIds.Length > 0) { foreach (string categoryId in searchRequest.CategoryIds) { filter = filter & Builders <Resume> .Filter.Where(x => x.Purpose.Categorys.Any(c => c.Id.Contains(categoryId))); } } filter = filter & Builders <Resume> .Filter.Where(x => x.Status == ResumeStatus.Published); var listResume = await _mongoDbRepository.Find(filter); var listResumeRequest = Mapper.Map <List <ResumeRequest> >(listResume); return(listResumeRequest); }
public async Task <IActionResult> SearchResume([FromBody] SearchResumeRequest searchResume) { var result = await _resumeBusinessLogic.SearchResume(searchResume); return(this.OkResult(result)); }