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();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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()
            });
        }