public VacancySearchConfigurationService( IConfigurationService configurationService, SearchFactorConfiguration searchFactorConfiguration) { _configurationService = configurationService; _searchFactorConfiguration = searchFactorConfiguration; }
public ApprenticeshipsSearchProvider( IElasticsearchClientFactory elasticsearchClientFactory, IMapper vacancySearchMapper, IConfigurationService configurationService, ILogService logger) { _elasticsearchClientFactory = elasticsearchClientFactory; _vacancySearchMapper = vacancySearchMapper; _searchConfiguration = configurationService.Get <SearchConfiguration>(); _searchFactorConfiguration = configurationService.Get <SearchFactorConfiguration>(); _logger = logger; }
public SearchResponse Search(SearchRequest request) { var searchFactorConfiguration = new SearchFactorConfiguration { DescriptionFactors = GetFactorsFromRequest(SearchFactorKeys.Description, request), EmployerFactors = GetFactorsFromRequest(SearchFactorKeys.Employer, request), JobTitleFactors = GetFactorsFromRequest(SearchFactorKeys.JobTitle, request), ProviderFactors = GetFactorsFromRequest(SearchFactorKeys.Provider, request) }; var configurationService = new VacancySearchConfigurationService( _configurationService, searchFactorConfiguration); var elasticsearchClientFactory = new ElasticsearchClientFactory( configurationService, _logService); var searchProvider = new ApprenticeshipsSearchProvider( elasticsearchClientFactory, _mapper, configurationService, _logService); var parameters = new ApprenticeshipSearchParameters { PageNumber = 1, PageSize = 50, SearchField = GetSearchFieldFromRequest(request), Keywords = request.SearchTerms, SortType = VacancySearchSortType.Relevancy }; var indexDate = new DateTime(2020, 01, 01, 12, 00, 00); var indexAlias = elasticsearchClientFactory.GetIndexNameForType(typeof(ApprenticeshipSummary)); var indexName = string.Format("{0}.{1}", indexAlias, indexDate.ToUniversalTime().ToString("yyyy-MM-dd-HH")); var vacancies = searchProvider.FindVacancies(parameters, indexName); return(new SearchResponse { Request = request, SearchResults = vacancies.Results.ToArray(), Total = vacancies.Total, SearchFactorConfiguration = configurationService.Get <SearchFactorConfiguration>(), Parameters = parameters }); }