예제 #1
0
        /// <summary>
        /// Matches the specified config object with this search value.
        /// </summary>
        /// <param name="configObject">Configuration object to match.</param>
        /// <returns>
        /// Value between 0 and 1, with 1 representing an exact match, 0 representing no match.
        /// </returns>
        public float CalculateMatchQuality(ConfigBase configObject)
        {
            CultureInfo          culture     = ServiceRegistration.Get <ILocalization>().CurrentCulture;
            IEnumerable <string> searchTexts = configObject.GetSearchTexts();
            double result = 0;
            int    count  = 0;

            foreach (string text in searchTexts)
            {
                string searchText = text.ToLower(culture);
                if (searchText == _searchText)
                {
                    result++;
                }
                else if (text.Contains(_searchText))
                {
                    result += 0.5;
                }
                count++;
            }
            return((float)(result / count));
        }