예제 #1
0
        private void btnApply_Click(object sender, EventArgs e)
        {
            string errormsg;

            btnApply.Enabled = false;
            if (nudMonitors.Value != _lastMonitors)
            {
                Data.Config.WriteInteger("Station", "Monitors", Convert.ToInt32(nudMonitors.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("Station", new RiserAddress(), "Monitors",
                                     _lastMonitors.ToString("0"), nudMonitors.Value.ToString("0"),
                                     Data.UserName, "Количество мониторов станции");
                _lastMonitors = Convert.ToInt32(nudMonitors.Value);
            }
            if (cbUseSmartLevel.Checked != Data.UseSmartLevel)
            {
                Data.Config.WriteBool("FillingPageCommon", "UseSmartLevel", cbUseSmartLevel.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("FillingPage", new RiserAddress(), "UseSmartLevel",
                                     !cbUseSmartLevel.Checked ? "1" : "0", cbUseSmartLevel.Checked ? "1" : "0",
                                     Data.UserName, "Обнулять показания уровня, если долго нет изменений значения");
                Data.UseSmartLevel = cbUseSmartLevel.Checked;
            }
            if (nudSmartLevelDifferent.Value != Data.SmartLevelDifferent)
            {
                Data.Config.WriteInteger("FillingPageCommon", "SmartLevelDifferent", Convert.ToInt32(nudSmartLevelDifferent.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("FillingPage", new RiserAddress(), "SmartLevelDifferent",
                                     Data.SmartLevelDifferent.ToString("0"), nudSmartLevelDifferent.Value.ToString("0"),
                                     Data.UserName, "Изменение показаний более чем на (мм)");
                Data.SmartLevelDifferent = Convert.ToInt32(nudSmartLevelDifferent.Value);
            }
            if (nudSmartLevelQueueSize.Value != Data.SmartLevelQueueSize)
            {
                Data.Config.WriteInteger("FillingPageCommon", "SmartLevelQueueSize", Convert.ToInt32(nudSmartLevelQueueSize.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("FillingPage", new RiserAddress(), "SmartLevelQueueSize",
                                     Data.SmartLevelQueueSize.ToString("0"), nudSmartLevelQueueSize.Value.ToString("0"),
                                     Data.UserName, "Использовать усреднение для количества отсчетов");
                Data.SmartLevelQueueSize = Convert.ToInt32(nudSmartLevelQueueSize.Value);
            }
            if (сbShowReadyAndAlarm.Checked != Data.ShowReadyAndAlarm)
            {
                Data.Config.WriteBool("FillingPageCommon", "ShowReadyAndAlarm", сbShowReadyAndAlarm.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("FillingPage", new RiserAddress(), "ShowReadyAndAlarm",
                                     !сbShowReadyAndAlarm.Checked ? "1" : "0", сbShowReadyAndAlarm.Checked ? "1" : "0",
                                     Data.UserName, "Показывать вместе \"Готовность\" и \"Аварийный уровень\" на диаграмме стояка");
                Data.ShowReadyAndAlarm = сbShowReadyAndAlarm.Checked;
            }
            if (nudLogViewMessagesCount.Value != _lastWorklogMessagesCount)
            {
                Data.Config.WriteInteger("General", "LogMessagesCount", Convert.ToInt32(nudLogViewMessagesCount.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("General", new RiserAddress(), "LogMessagesCount",
                                     _lastWorklogMessagesCount.ToString("0"), nudLogViewMessagesCount.Value.ToString("0"),
                                     Data.UserName, "Количество строк в окне лога");
                _lastWorklogMessagesCount = Convert.ToInt32(nudLogViewMessagesCount.Value);
            }
            if (nudStartTaskPeriod.Value != Data.StartTaskPeriod)
            {
                Data.Config.WriteInteger("General", "StartTaskPeriod", Convert.ToInt32(nudStartTaskPeriod.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("General", new RiserAddress(), "StartTaskPeriod",
                                     Data.StartTaskPeriod.ToString("0"), nudStartTaskPeriod.Value.ToString("0"),
                                     Data.UserName, "Период запуска налива стояков при групповом старте");
                Data.StartTaskPeriod = Convert.ToInt32(nudStartTaskPeriod.Value);
            }
            if (nudStopTaskPeriod.Value != Data.StopTaskPeriod)
            {
                Data.Config.WriteInteger("General", "StopTaskPeriod", Convert.ToInt32(nudStopTaskPeriod.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("General", new RiserAddress(), "StopTaskPeriod",
                                     Data.StopTaskPeriod.ToString("0"), nudStopTaskPeriod.Value.ToString("0"),
                                     Data.UserName, "Период останова налива стояков при групповом останове");
                Data.StopTaskPeriod = Convert.ToInt32(nudStopTaskPeriod.Value);
            }
            if (nudDeleteLogsAfter.Value != Data.DeleteLogsAfter)
            {
                Data.Config.WriteInteger("General", "DeleteLogsAfter", Convert.ToInt32(nudDeleteLogsAfter.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("General", new RiserAddress(), "DeleteLogsAfter",
                                     Data.DeleteLogsAfter.ToString("0"), nudDeleteLogsAfter.Value.ToString("0"),
                                     Data.UserName, "Количество дней перед удалением старых записей журналов");
                Data.DeleteLogsAfter = Convert.ToInt32(nudDeleteLogsAfter.Value);
            }
            if (nudDeleteTrendsAfter.Value != Data.DeleteTrendsAfter)
            {
                Data.Config.WriteInteger("General", "DeleteTrendsAfter", Convert.ToInt32(nudDeleteTrendsAfter.Value));
                Data.Config.UpdateFile();
                Data.SendToChangeLog("General", new RiserAddress(), "DeleteTrendsAfter",
                                     Data.DeleteTrendsAfter.ToString("0"), nudDeleteTrendsAfter.Value.ToString("0"),
                                     Data.UserName, "Количество дней перед удалением старых записей трендов");
                Data.DeleteTrendsAfter = Convert.ToInt32(nudDeleteTrendsAfter.Value);
            }

            if (cbEnableLocalEventServer.Checked != Data.EnableLocalEventServer)
            {
                Data.Config.WriteBool("DataEventServers", "EnableLocalEventServer", cbEnableLocalEventServer.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("DataEventServers", new RiserAddress(), "EnableLocalEventServer",
                                     !cbEnableLocalEventServer.Checked ? "1" : "0", cbEnableLocalEventServer.Checked ? "1" : "0",
                                     Data.UserName, "Отдавать данные другим подписчикам");
                Data.EnableLocalEventServer = cbEnableLocalEventServer.Checked;
            }

            if (tbSelfIpAddress.Text != Data.SelfIpAddress)
            {
                IPAddress address;
                if (IPAddress.TryParse(tbSelfIpAddress.Text, out address))
                {
                    Data.Config.WriteString("DataEventServers", "SelfIpAddress", tbSelfIpAddress.Text);
                    Data.Config.UpdateFile();
                    Data.SendToChangeLog("DataEventServers", new RiserAddress(), "SelfIpAddress",
                                         Data.SelfIpAddress, tbSelfIpAddress.Text,
                                         Data.UserName, "IP-адрес сервера локальной машины");
                    Data.SelfIpAddress = tbSelfIpAddress.Text;
                }
                else
                {
                    MessageBox.Show(this, @"Ошибка при вводе IP-адреса для сервера локальной машины",
                                    @"Настройка серверов подписки", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tbSelfIpAddress.Text = Data.SelfIpAddress;
                }
            }

            if (cbEventServer1.Checked != Data.StationNodes[0].Enable)
            {
                Data.Config.WriteBool("DataEventServers", "EnableEventServer1", cbEventServer1.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("DataEventServers", new RiserAddress(), "EnableEventServer1",
                                     !cbEventServer1.Checked ? "1" : "0", cbEventServer1.Checked ? "1" : "0",
                                     Data.UserName, "Разрешение подписки на сервер событий 1");
                Data.StationNodes[0].Enable = cbEventServer1.Checked;
            }

            var ipaddr = Data.StationNodes[0].Address != null ? Data.StationNodes[0].Address.ToString() : "";

            if (cbEventServer1.Checked && tbEventServer1.Text != ipaddr)
            {
                IPAddress address;
                if (IPAddress.TryParse(tbEventServer1.Text, out address))
                {
                    Data.Config.WriteString("DataEventServers", "AddressEventServer1", tbEventServer1.Text);
                    Data.Config.UpdateFile();
                    Data.SendToChangeLog("DataEventServers", new RiserAddress(), "AddressEventServer1",
                                         ipaddr, tbEventServer1.Text,
                                         Data.UserName, "IP-адрес сервера событий 1");
                    Data.StationNodes[0].Address = address;
                }
                else
                {
                    MessageBox.Show(this, @"Ошибка при вводе IP-адреса для сервера подписки 1",
                                    @"Настройка серверов подписки", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tbEventServer1.Text = ipaddr;
                }
            }

            if (cbEventServer2.Checked != Data.StationNodes[1].Enable)
            {
                Data.Config.WriteBool("DataEventServers", "EnableEventServer2", cbEventServer2.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("DataEventServers", new RiserAddress(), "EnableEventServer2",
                                     !cbEventServer2.Checked ? "1" : "0", cbEventServer2.Checked ? "1" : "0",
                                     Data.UserName, "Разрешение подписки на сервер событий 2");
                Data.StationNodes[1].Enable = cbEventServer2.Checked;
            }
            ipaddr = Data.StationNodes[1].Address != null ? Data.StationNodes[1].Address.ToString() : "";
            if (cbEventServer2.Checked && tbEventServer2.Text != ipaddr)
            {
                IPAddress address;
                if (IPAddress.TryParse(tbEventServer2.Text, out address))
                {
                    Data.Config.WriteString("DataEventServers", "AddressEventServer2", tbEventServer2.Text);
                    Data.Config.UpdateFile();
                    Data.SendToChangeLog("DataEventServers", new RiserAddress(), "AddressEventServer2",
                                         ipaddr, tbEventServer2.Text,
                                         Data.UserName, "IP-адрес сервера событий 2");
                    Data.StationNodes[1].Address = address;
                }
                else
                {
                    MessageBox.Show(this, @"Ошибка при вводе IP-адреса для сервера подписки 2",
                                    @"Настройка серверов подписки", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tbEventServer2.Text = ipaddr;
                }
            }

            if (cbEventServer3.Checked != Data.StationNodes[2].Enable)
            {
                Data.Config.WriteBool("DataEventServers", "EnableEventServer3", cbEventServer3.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("DataEventServers", new RiserAddress(), "EnableEventServer3",
                                     !cbEventServer3.Checked ? "1" : "0", cbEventServer3.Checked ? "1" : "0",
                                     Data.UserName, "Разрешение подписки на сервер событий 3");
                Data.StationNodes[2].Enable = cbEventServer3.Checked;
            }
            ipaddr = Data.StationNodes[2].Address != null ? Data.StationNodes[2].Address.ToString() : "";
            if (cbEventServer3.Checked && tbEventServer3.Text != ipaddr)
            {
                IPAddress address;
                if (IPAddress.TryParse(tbEventServer3.Text, out address))
                {
                    Data.Config.WriteString("DataEventServers", "AddressEventServer3", tbEventServer3.Text);
                    Data.Config.UpdateFile();
                    Data.SendToChangeLog("DataEventServers", new RiserAddress(), "AddressEventServer3",
                                         ipaddr, tbEventServer3.Text,
                                         Data.UserName, "IP-адрес сервера событий 3");
                    Data.StationNodes[2].Address = address;
                }
                else
                {
                    MessageBox.Show(this, @"Ошибка при вводе IP-адреса для сервера подписки 3",
                                    @"Настройка серверов подписки", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tbEventServer3.Text = ipaddr;
                }
            }
            if (cbEventServer4.Checked != Data.StationNodes[3].Enable)
            {
                Data.Config.WriteBool("DataEventServers", "EnableEventServer4", cbEventServer4.Checked);
                Data.Config.UpdateFile();
                Data.SendToChangeLog("DataEventServers", new RiserAddress(), "EnableEventServer4",
                                     !cbEventServer4.Checked ? "1" : "0", cbEventServer4.Checked ? "1" : "0",
                                     Data.UserName, "Разрешение подписки на сервер событий 4");
                Data.StationNodes[3].Enable = cbEventServer4.Checked;
            }
            ipaddr = Data.StationNodes[3].Address != null ? Data.StationNodes[3].Address.ToString() : "";
            if (cbEventServer4.Checked && tbEventServer4.Text != ipaddr)
            {
                IPAddress address;
                if (IPAddress.TryParse(tbEventServer4.Text, out address))
                {
                    Data.Config.WriteString("DataEventServers", "AddressEventServer4", tbEventServer4.Text);
                    Data.Config.UpdateFile();
                    Data.SendToChangeLog("DataEventServers", new RiserAddress(), "AddressEventServer4",
                                         ipaddr, tbEventServer4.Text,
                                         Data.UserName, "IP-адрес сервера событий 4");
                    Data.StationNodes[3].Address = address;
                }
                else
                {
                    MessageBox.Show(this, @"Ошибка при вводе IP-адреса для сервера подписки 4",
                                    @"Настройка серверов подписки", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    tbEventServer4.Text = ipaddr;
                }
            }

            if (cbDisableTaskManager.Checked != _lastDisableTaskManagerState)
            {
                if (!Data.DisableTaskManager(cbDisableTaskManager.Checked, out errormsg))
                {
                    cbDisableTaskManager.Checked = _lastDisableTaskManagerState;
                    MessageBox.Show(this, string.Concat(errormsg, Environment.NewLine,
                                                        @"Попробуйте запустить программу от имени администратора."),
                                    @"Настройка запрета вызова диспетчера задач",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    Data.Config.WriteBool("GeneralFor" + Environment.UserName, "DisableTaskMgr", cbDisableTaskManager.Checked);
                    Data.Config.UpdateFile();
                    _lastDisableTaskManagerState = cbDisableTaskManager.Checked;
                }
            }
            if (Data.SystemShell != cbSystemShell.Checked)
            {
                if (!Data.SetShellMode(cbSystemShell.Checked, out errormsg))
                {
                    cbSystemShell.Checked = Data.SystemShell;
                    MessageBox.Show(this, string.Concat(errormsg, Environment.NewLine,
                                                        @"Попробуйте запустить программу от имени администратора."),
                                    @"Настройка режима оболочки системы",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    Data.SystemShell   = cbSystemShell.Checked;
                    Data.MustWinLogOff = !Data.SystemShell;
                    Data.Config.WriteBool("GeneralFor" + Environment.UserName, "SystemShell", cbSystemShell.Checked);
                    Data.Config.UpdateFile();
                }
            }
        }