private static LoadLanguageResult LoadLanguageOrFallbackLanguage( LanguageResourceService <LanguageResourceDto> languageResourceService, string languageTwoLetterCode, string fallbackLanguageTwoLetterCode) { var desiredLanguageResourceDto = languageResourceService.Load(languageTwoLetterCode); if (desiredLanguageResourceDto != null) { return(new LoadLanguageResult( languageTwoLetterCode, desiredLanguageResourceDto.LocalizedItems .ToDictionary(x => x.Key, x => x.Value) )); } var fallbackLanguageResourceDto = languageResourceService.Load(fallbackLanguageTwoLetterCode); if (fallbackLanguageResourceDto != null) { return(new LoadLanguageResult( fallbackLanguageTwoLetterCode, fallbackLanguageResourceDto.LocalizedItems .ToDictionary(x => x.Key, x => x.Value) )); } throw new Exception($"Could not load the LanguageResourceDto for the {nameof(languageTwoLetterCode)} '{languageTwoLetterCode}', nor for the {nameof(fallbackLanguageTwoLetterCode)} '{fallbackLanguageTwoLetterCode}'."); }
private LanguageResource( LanguageResourceService <LanguageResourceDto> languageResourceService, string currentLanguage, Dictionary <string, string> localizedStrings, string fallbackLanguageTwoLetterCode) { _currentLanguage = currentLanguage ?? throw new ArgumentNullException(nameof(currentLanguage)); _languageResourceService = languageResourceService ?? throw new ArgumentNullException(nameof(languageResourceService)); _localizedStrings = localizedStrings ?? throw new ArgumentNullException(nameof(localizedStrings)); _fallbackLanguageTwoLetterCode = fallbackLanguageTwoLetterCode ?? throw new ArgumentNullException(nameof(fallbackLanguageTwoLetterCode)); }
public static LanguageResource Create( LanguageResourceService <LanguageResourceDto> languageResourceService, string initialLanguageTwoLetterCode, string fallbackLanguageTwoLetterCode) { var result = LoadLanguageOrFallbackLanguage( languageResourceService, initialLanguageTwoLetterCode, fallbackLanguageTwoLetterCode ); return(new LanguageResource( languageResourceService, result.Language, result.LocalizedStrings, fallbackLanguageTwoLetterCode )); }