/// /// Copyright (c) 2021-2023 Sensus Slovensko a.s. /// using System; using System.Windows.Forms; using OrderManagement.Resources; namespace OrderManagement { public partial class SettingsDlg : Form { private LocalSettings ls; public SettingsDlg() { InitializeComponent(); } public SettingsDlg(LocalSettings localSettings) { InitializeComponent(); this.ls = localSettings; } void Localize() { Text = Strings.Settings; languageLabel.Text = Strings.Language_etc; loginRequiredCheckBox.Text = Strings.User_login_is_required; showPredefinedOrdersCheckBox.Text = Strings.Show_predefined_orders; saveButton.Text = Strings.Save; cancelButton.Text = Strings.Cancel; connStrForTracingGroupBox.Text = Strings.Connection_string_tracing_DB; connStrForUsersGroupBox.Text = Strings.Connection_string_users_DB; } private void SettingsDlg_Load(object sender, EventArgs e) { Localize(); if (ls == null) return; languageComboBox.Items.Add("EN"); languageComboBox.Items.Add("ZH_CN"); languageComboBox.Items.Add("DE"); languageComboBox.Items.Add("SK"); languageComboBox.Text = ls.Language; loginRequiredCheckBox.Checked = ls.IsUserLoginRequired; showPredefinedOrdersCheckBox.Checked = ls.IsShowPredefinedOrders; showFinishedOrdersCheckBox.Checked = ls.IsShowFinishedOrders; tracingDBConnStringTextBox.Text = ls.TracingDBConnString; usersDBConnStringTextBox.Text = ls.UsersDBConnString; } /// /// Verifies UI content /// /// None-empty string (message) when invalid string IsUIContentValid() { if (!languageComboBox.Items.Contains(languageComboBox.Text)) { return "Invalid language"; } return null; } /// /// Updates settings, checks for differences compared to previous setrtings /// /// true when settings are different bool UpdateSettings() { if (ls == null) return false; bool isDifferent = false; if (ls.Language != languageComboBox.Text) { ls.Language = languageComboBox.Text; isDifferent = true; } if (ls.IsUserLoginRequired != loginRequiredCheckBox.Checked) { ls.IsUserLoginRequired = loginRequiredCheckBox.Checked; isDifferent = true; } if (ls.IsShowPredefinedOrders != showPredefinedOrdersCheckBox.Checked) { ls.IsShowPredefinedOrders = showPredefinedOrdersCheckBox.Checked; isDifferent = true; } if (ls.IsShowFinishedOrders != showFinishedOrdersCheckBox.Checked) { ls.IsShowFinishedOrders = showFinishedOrdersCheckBox.Checked; isDifferent = true; } if (ls.TracingDBConnString != tracingDBConnStringTextBox.Text) { ls.TracingDBConnString = tracingDBConnStringTextBox.Text; isDifferent = true; } if (ls.UsersDBConnString != usersDBConnStringTextBox.Text) { ls.UsersDBConnString = usersDBConnStringTextBox.Text; isDifferent = true; } return isDifferent; } private void saveButton_Click(object sender, EventArgs e) { string message = IsUIContentValid(); if (string.IsNullOrEmpty(message)) { UpdateSettings(); DialogResult = DialogResult.OK; Close(); } else { MessageBox.Show(message); } } private void cancelButton_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } } }