public static Language GetLanguage(string code)
        {
            if (string.IsNullOrWhiteSpace(code))
            {
                return(GetDefaultLanguage());
            }
            var cachedResult = LanguageCache.CheckInCacheLanguageCode(code);

            if (cachedResult != null)
            {
                return(cachedResult);
            }
            var languageList = GetLanguageList();
            var language     = languageList.FirstOrDefault(item => item.Code.ToLowerInvariant() == code.ToLowerInvariant());

            if (language == null)
            {
                language = GetDefaultLanguage();
            }
            LanguageCache.AddToCacheLanguageCode(code, language);
            return(language);
        }