예제 #1
0
        /// <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>();
 }