142 lines
4.2 KiB
C#
142 lines
4.2 KiB
C#
///
|
|
/// 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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Verifies UI content
|
|
/// </summary>
|
|
/// <returns>None-empty string (message) when invalid</returns>
|
|
string IsUIContentValid()
|
|
{
|
|
if (!languageComboBox.Items.Contains(languageComboBox.Text))
|
|
{
|
|
return "Invalid language";
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Updates settings, checks for differences compared to previous setrtings
|
|
/// </summary>
|
|
/// <returns>true when settings are different</returns>
|
|
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();
|
|
}
|
|
}
|
|
}
|