Esempio n. 1
0
        /// <summary>
        /// </summary>
        /// <param name="sender"> </param>
        /// <param name="e"> </param>
        private static void SettingsPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            Logging.Log(Logger, $"PropertyChanged : {e.PropertyName}");
            try {
                switch (e.PropertyName)
                {
                case "CharacterName":
                    Constants.CharacterName = Settings.Default.CharacterName;
                    break;

                case "GameLanguage":
                    Constants.GameLanguage = Settings.Default.GameLanguage;
                    break;

                case "UILanguage":
                    if (AppViewModel.Instance.UILanguages.Any(ui => ui.Language == Settings.Default.UILanguage))
                    {
                        UILanguage uiLanguage = AppViewModel.Instance.UILanguages.First(ui => ui.Language == Settings.Default.UILanguage);
                        Constants.CultureInfo = Settings.Default.Culture = uiLanguage.CultureInfo;
                        LocaleHelper.Update(Settings.Default.Culture);
                    }

                    break;

                case "ServerName":
                    Constants.ServerName = Settings.Default.ServerName;
                    break;

                case "EnableNLog":
                    Common.Constants.EnableNLog = Constants.EnableNLog = Settings.Default.EnableNLog;
                    break;

                case "EnableNetworkReading":
                    Common.Constants.EnableNetworkReading = Constants.EnableNetworkReading = Settings.Default.EnableNetworkReading;
                    if (Settings.Default.EnableNetworkReading)
                    {
                        if (!Initializer.NetworkWorking && Constants.IsOpen)
                        {
                            Initializer.StartNetworkWorker();
                        }
                    }
                    else
                    {
                        Initializer.StopNetworkWorker();
                    }

                    break;

                case "NetworkUseWinPCap":
                    if (Initializer.NetworkWorking)
                    {
                        Initializer.RefreshNetworkWorker();
                    }

                    break;

                case "EnableHelpLabels":
                    Constants.EnableHelpLabels = Settings.Default.EnableHelpLabels;
                    break;

                case "Theme":
                    Constants.Theme = Settings.Default.Theme;
                    break;

                case "UIScale":
                    Constants.UIScale = Settings.Default.UIScale;
                    break;

                case "TopMost":
                    if (ShellView.View != null)
                    {
                        ShellView.View.Topmost = Settings.Default.TopMost;
                    }

                    break;

                case "DefaultAudioDevice":
                    if (Settings.Default.DefaultAudioDevice == "System Default")
                    {
                        Common.Constants.DefaultAudioDevice = Guid.Empty;
                    }
                    else
                    {
                        foreach (DirectSoundDeviceInfo audioDevice in AvailableAudioDevices.Where(device => device.Guid != Guid.Empty))
                        {
                            if (audioDevice.Description == Settings.Default.DefaultAudioDevice)
                            {
                                Common.Constants.DefaultAudioDevice = audioDevice.Guid;
                            }
                        }
                    }

                    break;
                }
            }
            catch (Exception ex) {
                Logging.Log(Logger, new LogItem(ex, true));
            }
        }