public override bool SetGlobalResourceContextDefaultCulture(CultureInfo ci)
{
Debug.Assert(ci != null);
InitializeStaticGlobalResourceContext(null);
if (s_globalResourceContext == null)
{
return false;
}
if (s_globalResourceContextBestFitCultureInfo != null && s_globalResourceContextBestFitCultureInfo.Name.Equals(ci.Name, StringComparison.OrdinalIgnoreCase))
{
// the default culture is already set. nothing more need to be done
return true;
}
List<String> languages = new List<String>(s_globalResourceContext.Languages);
languages.Insert(0, ci.Name);
// remove any duplication in the list
int i = languages.Count - 1;
while (i > 0)
{
if (languages[i].Equals(ci.Name, StringComparison.OrdinalIgnoreCase))
{
languages.RemoveAt(i);
}
i--;
}
s_globalResourceContext.Languages = languages;
// update s_globalResourceContextBestFitCultureInfo and don't wait to be overridden by GlobalResourceContextChanged
// to avoid any timing problem
s_globalResourceContextBestFitCultureInfo = ci;
return true;
}