public async Task InitializeCountryLocations(string countryCode)
        {
            CountryLocalities.Clear();
            CountryLocalityZones.Clear();
            CountryLocalitiesBySynonyms.Clear();
            DefaultCountryName = string.Empty;

            await InitializeCountryNames(countryCode);
            await InitializeCountryLocalities(countryCode);
            await InitializeCountryLocalityZones(countryCode);
            await InitializeLocalitySynonyms(countryCode);
        }
        public KeyValuePair <int, MultiLanguage <string> >?GetActualLocality(MultiLanguage <string>?rawLocalityNames)
        {
            if (rawLocalityNames == null)
            {
                return(null);
            }

            var defaultLocalityName    = rawLocalityNames.GetValueOrDefault(Constants.DefaultLanguageCode);
            var normalizedLocalityName = _locationNameNormalizer.GetNormalizedLocalityName(DefaultCountryName, defaultLocalityName);

            if (!_localityValidator.IsNormalizedValid(DefaultCountryName, normalizedLocalityName))
            {
                return(null);
            }

            if (!CountryLocalities.TryGetValue(normalizedLocalityName, out var value))
            {
                return(CountryLocalitiesBySynonyms.TryGetValue(normalizedLocalityName, out value) ? value : null);
            }

            return(value);
        }