Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        public async Task <IActionResult> SearchResume([FromBody] SearchResumeRequest searchResume)
        {
            var result = await _resumeBusinessLogic.SearchResume(searchResume);

            return(this.OkResult(result));
        }