/// <summary> /// Changes the current language. /// </summary> /// <param name="language">The language.</param> public void ChangeCurrentLanguage(LanguageInfo language) { language.Culture.DateTimeFormat = _systemFormat; var localizationChangingArgs = new LocalizationChangingEventArgs(language); _localizationChangingEvent.Publish(localizationChangingArgs); if (localizationChangingArgs.WaitingFor.IsEmpty()) { SetCurrentLanguage(language); } else { var waitTask = new WaitTask(Logger) { Handlers = localizationChangingArgs.WaitingFor.ToArray(), OnResult = result => { SetCurrentLanguage(language); } }; _taskQueue.Enqueue(waitTask); } }
/// <summary> /// Initializes a new instance of the <see cref="LocalizationChangingEventArgs"/> class. /// </summary> /// <param name="languageInfo">The language information.</param> public LocalizationChangingEventArgs(LanguageInfo languageInfo) { LanguageInfo = languageInfo; WaitingFor = new List <WaitHandle>(); }