///------------------------------------------------------------------------------------------------- /// <summary> /// Determine if we can show tooltip. /// </summary> /// /// <remarks> /// Anwar Javed, 03/05/2014 3:11 PM. /// </remarks> /// /// <exception cref="ArgumentNullException"> /// Thrown when one or more required arguments are null. /// </exception> /// /// <param name="uiCulture"> /// The culture. /// </param> /// <param name="key"> /// The key. /// </param> /// /// <returns> /// true if we can show tooltip, false if not. /// </returns> ///------------------------------------------------------------------------------------------------- public static bool CanShowTooltip(CultureInfo uiCulture, string key) { try { if (uiCulture == null) { throw new ArgumentNullException("uiCulture"); } Dictionary <string, LanguageResource> dictionary = null; ICache cache = Container.TryGet <ICache>(); if (cache != null && cache.Exists(LocalizationConstants.LocalizationKey)) { dictionary = cache.Get <Dictionary <string, LanguageResource> >(LocalizationConstants.LocalizationKey); } if (dictionary == null) { dictionary = GetLanguageDictionary(); if (cache != null) { cache.Set(LocalizationConstants.LocalizationKey, dictionary, TimeSpan.FromMinutes(30)); } } string cultureKey = GetLanguageCode(uiCulture).ToString("G").ToLowerInvariant() + "[" + key + "]"; string defaultcultureKey = LanguageCode.English.ToString("G").ToLowerInvariant() + "[" + key + "]"; LanguageResource resource = null; if (dictionary.ContainsKey(cultureKey)) { resource = dictionary[cultureKey]; } else if (dictionary.ContainsKey(defaultcultureKey)) { resource = dictionary[defaultcultureKey]; } if (resource != null && resource.CanShowTooltip) { if (!string.IsNullOrWhiteSpace(resource.TooltipText)) { return(true); } } return(false); } catch (Exception) { return(false); } }
///------------------------------------------------------------------------------------------------- /// <summary> /// Gets language dictionary. /// </summary> /// /// <returns> /// The language dictionary. /// </returns> ///------------------------------------------------------------------------------------------------- private static Dictionary <string, LanguageResource> GetLanguageDictionary() { Dictionary <string, LanguageResource> dictionary = new Dictionary <string, LanguageResource>(StringComparer.OrdinalIgnoreCase); ILanguageProvider provider = Container.TryGet <ILanguageProvider>(); IEnumerable <IGrouping <LanguageCode, ILanguageResource> > list = provider.Get(0, int.MaxValue).Distinct().GroupBy(x => x.Code); foreach (var langResources in list) { foreach (var languageResource in langResources) { LanguageResource resource = new LanguageResource(languageResource); string key = langResources.Key.ToString("G").ToLowerInvariant() + "[" + resource.Key + "]"; if (!dictionary.ContainsKey(key)) { dictionary.Add(key, resource); } } } return(dictionary); }