コード例 #1
0
        public TraineeshipSearchResponseViewModel FindVacancies(TraineeshipSearchViewModel search)
        {
            _logger.Debug("Calling SearchProvider to find traineeship vacancies.");
            string vacancyReference;
            var    searchLocation     = _traineeshipSearchMapper.Map <TraineeshipSearchViewModel, Location>(search);
            var    isVacancyReference = VacancyHelper.TryGetVacancyReference(search.ReferenceNumber, out vacancyReference);

            try
            {
                var searchRequest = new TraineeshipSearchParameters
                {
                    Location     = searchLocation,
                    PageNumber   = search.PageNumber,
                    PageSize     = search.ResultsPerPage,
                    SearchRadius = search.WithinDistance,
                    SortType     = search.SortType
                };
                if (isVacancyReference)
                {
                    searchRequest.VacancyReference = vacancyReference;
                }

                var searchResults = _traineeshipSearchService.Search(searchRequest);

                if (searchResults.Total == 1)
                {
                    var exactMatchResponse = _traineeshipSearchMapper.Map <SearchResults <TraineeshipSearchResponse, TraineeshipSearchParameters>, TraineeshipSearchResponseViewModel>(searchResults);
                    exactMatchResponse.ExactMatchFound = true;
                    return(exactMatchResponse);
                }

                if (searchResults.Total > 1)
                {
                    _logger.Info($"{searchResults.Total} results found for Vacancy Reference Number {vacancyReference}");
                }
                var searchResponse =
                    _traineeshipSearchMapper.Map <SearchResults <TraineeshipSearchResponse, TraineeshipSearchParameters>, TraineeshipSearchResponseViewModel>(
                        searchResults);

                searchResponse.TotalHits     = searchResults.Total;
                searchResponse.PageSize      = search.ResultsPerPage;
                searchResponse.VacancySearch = search;

                return(searchResponse);
            }
            catch (CustomException ex)
            {
                // ReSharper disable once FormatStringProblem
                _logger.Error("Find traineeship vacancies failed. Check inner details for more info", ex);
                return(new TraineeshipSearchResponseViewModel(VacancySearchResultsPageMessages.VacancySearchFailed));
            }
            catch (Exception e)
            {
                _logger.Error("Find traineeship vacancies failed. Check inner details for more info", e);
                throw;
            }
        }
コード例 #2
0
ファイル: SearchProvider.cs プロジェクト: Valtech-NAS/Beta
        public TraineeshipSearchResponseViewModel FindVacancies(TraineeshipSearchViewModel search)
        {
            _logger.Debug("Calling SearchProvider to find traineeship vacancies.");

            var searchLocation = _traineeshipSearchMapper.Map <TraineeshipSearchViewModel, Location>(search);

            try
            {
                var searchRequest = new TraineeshipSearchParameters
                {
                    Location     = searchLocation,
                    PageNumber   = search.PageNumber,
                    PageSize     = search.ResultsPerPage,
                    SearchRadius = search.WithinDistance,
                    SortType     = search.SortType,
                };

                var searchResults = _traineeshipSearchService.Search(searchRequest);

                var searchResponse =
                    _traineeshipSearchMapper.Map <SearchResults <TraineeshipSearchResponse, TraineeshipSearchParameters>, TraineeshipSearchResponseViewModel>(
                        searchResults);

                searchResponse.TotalHits     = searchResults.Total;
                searchResponse.PageSize      = search.ResultsPerPage;
                searchResponse.VacancySearch = search;

                return(searchResponse);
            }
            catch (CustomException ex)
            {
                // ReSharper disable once FormatStringProblem
                _logger.Error("Find traineeship vacancies failed. Check inner details for more info", ex);
                return(new TraineeshipSearchResponseViewModel(VacancySearchResultsPageMessages.VacancySearchFailed));
            }
            catch (Exception e)
            {
                _logger.Error("Find traineeship vacancies failed. Check inner details for more info", e);
                throw;
            }
        }