private static void CalculateRankForOrganisation(RankedAddOrganisationSearchOrganisation rankedAdminSearchOrganisation, List <string> searchTerms, string query, bool queryContainsPunctuation) { List <RankedName> rankedNames = RankValueHelper.GetRankedNames(rankedAdminSearchOrganisation.OrganisationNames, searchTerms, query, queryContainsPunctuation); rankedAdminSearchOrganisation.Names = rankedNames; rankedAdminSearchOrganisation.TopName = rankedAdminSearchOrganisation.Names .RankHelperOrderByListOfDoubles(name => name.Ranks) .First(); }
private static RankedAdminSearchOrganisation CalculateRankForOrganisation(SearchCachedOrganisation organisation, List <string> searchTerms, string query, bool queryContainsPunctuation) { var rankedAdminSearchOrganisation = new RankedAdminSearchOrganisation { Names = new List <RankedName>() }; rankedAdminSearchOrganisation.Names = RankValueHelper.GetRankedNames(organisation.OrganisationNames, searchTerms, query, queryContainsPunctuation); rankedAdminSearchOrganisation.TopName = rankedAdminSearchOrganisation.Names .RankHelperOrderByListOfDoubles(name => name.Ranks) .First(); var ranks = RankValueHelper.ApplyCompanySizeMultiplierToRanks( rankedAdminSearchOrganisation.TopName.Ranks, organisation.MinEmployees); rankedAdminSearchOrganisation.TopName.Ranks = ranks; string employerRefMatch = organisation.EmployerReference == query ? organisation.EmployerReference : null; string companyNumberMatch = organisation.CompanyNumber == query ? organisation.CompanyNumber : null; var previousNames = rankedAdminSearchOrganisation.Names .Where((item, nameIndex) => nameIndex != 0) .Select(name => name.Name) .ToList(); rankedAdminSearchOrganisation.AdminSearchResult = new AdminSearchResultOrganisationViewModel { OrganisationName = rankedAdminSearchOrganisation.Names[0].Name, OrganisationPreviousNames = previousNames, EmployerRef = employerRefMatch, CompanyNumber = companyNumberMatch, OrganisationId = organisation.OrganisationId, Status = organisation.Status, }; return(rankedAdminSearchOrganisation); }
private static AutoCompleteOrganisation CalculateRankForOrganisation(SearchCachedOrganisation organisation, List <string> searchTerms, string query, bool queryContainsPunctuation) { var autoCompleteOrganisation = new AutoCompleteOrganisation { EncryptedId = organisation.EncryptedId, Names = new List <RankedName>() }; autoCompleteOrganisation.Names = RankValueHelper.GetRankedNames(organisation.OrganisationNames, searchTerms, query, queryContainsPunctuation); autoCompleteOrganisation.TopName = autoCompleteOrganisation.Names .RankHelperOrderByListOfDoubles(name => name.Ranks) .First(); var ranks = RankValueHelper.ApplyCompanySizeMultiplierToRanks(autoCompleteOrganisation.TopName.Ranks, organisation.MinEmployees); autoCompleteOrganisation.TopName.Ranks = ranks; return(autoCompleteOrganisation); }
private static RankedViewingSearchOrganisation CalculateRankForOrganisation(SearchCachedOrganisation organisation, List <string> searchTerms, string query, bool queryContainsPunctuation) { var rankedViewingSearchOrganisation = new RankedViewingSearchOrganisation { Names = new List <RankedName>() }; rankedViewingSearchOrganisation.Names = RankValueHelper.GetRankedNames(organisation.OrganisationNames, searchTerms, query, queryContainsPunctuation); rankedViewingSearchOrganisation.TopName = rankedViewingSearchOrganisation.Names .RankHelperOrderByListOfDoubles(name => name.Ranks) .First(); List <double> ranks = RankValueHelper.ApplyCompanySizeMultiplierToRanks( rankedViewingSearchOrganisation.TopName.Ranks, organisation.MinEmployees); rankedViewingSearchOrganisation.TopName.Ranks = ranks; List <string> previousNames = rankedViewingSearchOrganisation.Names .Where((item, nameIndex) => nameIndex != 0) .Select(name => name.Name) .ToList(); rankedViewingSearchOrganisation.ViewingSearchResult = new ViewingSearchResultOrganisationViewModel { OrganisationName = rankedViewingSearchOrganisation.Names[0].Name, OrganisationPreviousNames = previousNames, OrganisationId = organisation.OrganisationId, EncryptedId = organisation.EncryptedId }; return(rankedViewingSearchOrganisation); }
private static RankedName CalculateRankForUserValue(SearchReadyValue value, List <string> searchTerms, string query, bool queryContainsPunctuation) { var rankValues = new List <double>(); rankValues.Add(RankValueHelper.CalculateRankValueForPrefixMatch(value, query)); for (int searchTermIndex = 0; searchTermIndex < searchTerms.Count; searchTermIndex++) { string searchTerm = searchTerms[searchTermIndex]; List <string> words = queryContainsPunctuation ? value.LowercaseWordsWithPunctuation : value.LowercaseWords; for (int wordIndex = 0; wordIndex < words.Count; wordIndex++) { string word = words[wordIndex]; rankValues.Add( CalculateRankValueForUserWordMatch(word, query, searchTerm, searchTermIndex, wordIndex)); } } return(new RankedName { Name = value.OriginalValue, Ranks = rankValues.OrderByDescending(r => r).Take(5).ToList() }); }