コード例 #1
0
        private void SettingsForm_Load(object sender, EventArgs e)
        {
            try
            {
                var loadFromJsonResult = MainSettings.LoadFromJson();

                if (!loadFromJsonResult.IsComplete)
                {
                    //NLogger.LogErrorToHdd(res.Message, MainSettings.Constants.MAGIC_UPDATER_SETTINGS);
                    //MessageBox.Show(res.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                //JsonSettings
                txtServerTask.Text   = MainSettings.JsonSettings.ServerTask;
                txtBaseTask.Text     = MainSettings.JsonSettings.BaseTask;
                txtUserTask.Text     = MainSettings.JsonSettings.UserTask;
                txtPasswordTask.Text = MainSettings.JsonSettings.PasswordTask;

                var loadSettingsResult = MainSettings.LoadSettings();

                if (!loadSettingsResult.IsComplete)
                {
                    return;
                }

                cbShopID.DisplayMember = "ShopId";
                cbShopID.ValueMember   = "ShopId";
                cbShopID.DataSource    = SqlWorks.ExecProc("SelectShopsList").Tables[0];

                //SqlSettings
                cbShopID.Text             = MainSettings.MainSqlSettings.ShopID;
                txtServer1C.Text          = MainSettings.LocalSqlSettings.Server1C;
                txtBase1C.Text            = MainSettings.LocalSqlSettings.Base1C;
                txtUser1C.Text            = MainSettings.LocalSqlSettings.User1C;
                txtPass1C.Text            = MainSettings.LocalSqlSettings.Pass1C;
                txtVersion1C.Text         = MainSettings.LocalSqlSettings.Version1C;
                txtTimeOut.Text           = MainSettings.LocalSqlSettings.OperationsListCheckTimeout.ToString();
                txtSelfUpdatePath.Text    = MainSettings.LocalSqlSettings.SelfUpdatePath;
                cbIsMainCashbox.Checked   = MainSettings.MainSqlSettings.IsMainCashbox;
                cbIsServerLocated.Checked = MainSettings.MainSqlSettings.Is1CServer;
                cbIsCheck1C.Checked       = MainSettings.LocalSqlSettings.IsCheck1C;
            }
            catch (Exception ex)
            {
                ConnectionToService?.DisposeAsyncClient();
                MessageBox.Show(ex.Message.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                NLogger.LogErrorToHdd(ex.Message.ToString(), MainSettings.Constants.MAGIC_UPDATER_SETTINGS);
                Application.Exit();
            }
        }
コード例 #2
0
        private bool Initialize()
        {
            if (!File.Exists(MainSettings.JsonSettingsFileFullPath))
            {
                NLogger.LogErrorToHdd("Json - файл настроек не найден", MainSettings.Constants.MAGIC_UPDATER);
                return(false);
            }

            //Загружаем все настройки
            TryLoadMainSettings loadSettingsResult = MainSettings.LoadSettings();

            while (!loadSettingsResult.IsComplete)
            {
                NLogger.LogErrorToHdd(loadSettingsResult.NamedMessage, MainSettings.Constants.MAGIC_UPDATER);
                Thread.Sleep(60000);
                loadSettingsResult = MainSettings.LoadSettings();
            }

            if (MainSettings.MainSqlSettings.ComputerId == null || MainSettings.MainSqlSettings.ComputerId == 0)
            {
                NLogger.LogErrorToHdd("Ошибка регистрации компьютера. Не получен ComputerId.", MainSettings.Constants.MAGIC_UPDATER);
                return(false);
            }

            //Отчитываемся о том, что настройки прочитаны
            SqlWorks.ExecProc("SetIsAgentSettingsReaded", MainSettings.MainSqlSettings.ComputerId, true);

            //Если не режим отладки плагинов
            if (!_isPluginDebugMode)
            {
                SqlWorks.ExecProc("UpdateVersion", MainSettings.MainSqlSettings.ComputerId, Extensions.GetApplicationVersion());
                TaskerReporter.Start();
                RestartTaskerReporter.Start();
                switch (MainSettings.LocalSqlSettings.PerformanceCounterMode)
                {
                case 0:
                    break;

                case 1:
                    PerformanceReporter.StartOnlyAvg();
                    break;

                case 2:
                    PerformanceReporter.StartAll();
                    break;
                }
            }

            return(true);
        }
コード例 #3
0
 private void AppLoadSettings()
 {
     MainSettings.LoadSettings();
     MainSettings.LoadListColumnsWidth();
 }
コード例 #4
0
        private void btnNextStep_Click(object sender, EventArgs e)
        {
            Button button = sender as Button;
            int    tag    = (int)button.Tag;

            switch (tag)
            {
            case 1:
                //Сохраняем Json
                var formJson = new JsonLocalSettings
                {
                    BaseTask     = txtBaseTask.Text,
                    ServerTask   = txtServerTask.Text,
                    PasswordTask = txtPasswordTask.Text,
                    UserTask     = txtUserTask.Text
                };
                if (!CheckSQLConnection(formJson, false))
                {
                    return;
                }
                NewtonJson.WriteJsonFile(formJson, MainSettings.JsonSettingsFileFullPath);
                break;

            case 2:
                //Сохраняем главные настройки компьютера
                var formSqlMainSettings = new SqlMainSettings
                {
                    ComputerId    = MainSettings.MainSqlSettings.ComputerId,
                    Is1CServer    = cbIsServerLocated.Checked,
                    IsMainCashbox = cbIsMainCashbox.Checked,
                    ShopID        = cbShopID.Text
                };
                SqlWorks.SaveMainSqlSettingsToBase(formSqlMainSettings);

                //Сохраняем дополнительные настройки компьютера
                SqlWorks.SaveLocalSqlSettingsToBase(new SqlLocalSettings
                {
                    Server1C                   = txtServer1C.Text,
                    Base1C                     = txtBase1C.Text,
                    User1C                     = txtUser1C.Text,
                    Pass1C                     = txtPass1C.Text,
                    Version1C                  = txtVersion1C.Text,
                    IsCheck1C                  = cbIsCheck1C.Checked,
                    SelfUpdatePath             = txtSelfUpdatePath.Text,
                    OperationsListCheckTimeout = Convert.ToInt32(txtTimeOut.Text)
                });

                var loadSettingsresult = MainSettings.LoadSettings();
                if (!loadSettingsresult.IsComplete)
                {
                    MessageBox.Show(loadSettingsresult.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    Tools.SelfRestart(0);
                    //TODO: тут нужно как-то дать знать на форму что служба перезапущена и все заебись!
                    Hide();
                    notifyIcon1.Visible = true;
                }
                break;
            }
            ActivateSettingsPage(tabPageSettings);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: khorevaa/MagicUpdater
        static void Main(string[] args)
        {
            #region Initialization
            //Загружаем все настройки
            var loadSettingsResult = MainSettings.LoadSettings();
            if (!loadSettingsResult.IsComplete)
            {
                NLogger.LogErrorToHdd(loadSettingsResult.NamedMessage, MainSettings.Constants.MAGIC_UPDATER);
                return;
            }

            //Инициализируем переменные
            _currentVersionPath       = Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location));
            _newVersionPath           = MainSettings.LocalSqlSettings.SelfUpdatePath;
            _currentVersionBackupPath = Path.Combine(_currentVersionPath, "backup");
            _currentVersionExeName    = Path.Combine(_currentVersionPath, MainSettings.Constants.MAGIC_UPDATER_EXE);
            _newVersionExeName        = Path.Combine(_newVersionPath, MainSettings.Constants.MAGIC_UPDATER_EXE);
            _searchPatterns           = new string[]
            {
                "*.exe",
                "*.dll",
                "*.xml",
                "*.config",
                "*.pdb",
                "*.manifest",
            };

            _operationId = 0;
            #endregion Initialization

            if (args != null && args.Length == 2)
            {
                #region setOperationId
                try
                {
                    _operationId = Convert.ToInt32(args[1]);
                }
                catch (Exception ex)
                {
                    _operationId = 0;
                    NLogger.LogErrorToHdd($"{ex.Message}{Environment.NewLine}{ex.ToString()}", MainSettings.Constants.MAGIC_UPDATER_RESTART);
                }
                #endregion setOperationId

                #region restart
                if (args[0] == MainSettings.Constants.RESTART_PARAMETER)
                {
                    ServiceController service = new ServiceController(MainSettings.Constants.SERVICE_NAME);
                    TimeSpan          timeout = TimeSpan.FromMilliseconds(RESTART_TIMEOUT);
                    try
                    {
                        if (service.Status == ServiceControllerStatus.Running)
                        {
                            service.Stop();
                            service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
                            Tools.WaitAllProcessByname(MainSettings.Constants.MAGIC_UPDATER);

                            Thread.Sleep(3000);

                            //Если эта зараза повисла то кильнем, иначе крышка
                            foreach (var proc in Process.GetProcessesByName(MainSettings.Constants.MAGIC_UPDATER))
                            {
                                proc.Kill();
                            }

                            service.Start();
                            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
                        }
                        else if (service.Status == ServiceControllerStatus.Stopped)
                        {
                            service.Start();
                            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
                        }

                        //Отправляем сообщение еще одному приложению MagicUpdaterRestart для того чтобы оно запустило MagicUpdaterSettings с UI
                        //new StartSettingsViaPipe(_operationId).ActRun();

                        //Меняем состояние операции
                        if (_operationId > 0)
                        {
                            Operation.AddOperState(_operationId, OperStates.End);
                            Operation.SendOperationReport(_operationId, "", true);
                        }
                    }
                    catch (Exception ex)
                    {
                        //Если службу не удалось нормлаьно остановитиь, то киляем ее процесс и пробуем запустить.
                        try
                        {
                            foreach (var proc in Process.GetProcessesByName(MainSettings.Constants.MAGIC_UPDATER))
                            {
                                proc.Kill();
                            }

                            Thread.Sleep(3000);

                            service.Start();
                            service.WaitForStatus(ServiceControllerStatus.Running, timeout);

                            if (_operationId > 0)
                            {
                                Operation.AddOperState(_operationId, OperStates.End);
                                Operation.SendOperationReport(_operationId, $"Не удалось штатно остановить службу, служба была остановлена принудительно и перезапущена. Ошибка штатной остановки: {ex.Message}", true);
                            }
                            NLogger.LogErrorToHdd($"{ex.Message}{Environment.NewLine}{ex.ToString()}", MainSettings.Constants.MAGIC_UPDATER_RESTART);
                        }
                        catch (Exception exx)
                        {
                            if (_operationId > 0)
                            {
                                Operation.AddOperState(_operationId, OperStates.End);
                                Operation.SendOperationReport(_operationId, $"Не удалось перезапустить службу MagicUpdater. Ошибка: {exx.Message}", false);
                            }
                            NLogger.LogErrorToHdd($"{exx.Message}{Environment.NewLine}{exx.ToString()}", MainSettings.Constants.MAGIC_UPDATER_RESTART);
                        }
                    }
                }
                #endregion restart

                #region updateRestart
                if (args[0] == MainSettings.Constants.UPDATE_RESTART_PARAMETER)
                {
                    try
                    {
                        ServiceController service = new ServiceController(MainSettings.Constants.SERVICE_NAME);
                        TimeSpan          timeout = TimeSpan.FromMilliseconds(RESTART_TIMEOUT);
                        if (service.Status == ServiceControllerStatus.Running)
                        {
                            service.Stop();
                            service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
                            Tools.WaitAllProcessByname(MainSettings.Constants.MAGIC_UPDATER);

                            Thread.Sleep(3000);

                            //Если эта зараза повисла то кильнем, иначе крышка
                            foreach (var proc in Process.GetProcessesByName(MainSettings.Constants.MAGIC_UPDATER))
                            {
                                proc.Kill();
                            }

                            CopyNewVersionFiles();
                            Thread.Sleep(1000);
                            service.Start();
                            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
                        }
                        else if (service.Status == ServiceControllerStatus.Stopped)
                        {
                            CopyNewVersionFiles();
                            Thread.Sleep(3000);
                            service.Start();
                            service.WaitForStatus(ServiceControllerStatus.Running, timeout);
                        }

                        //Отправляем сообщение еще одному приложению MagicUpdaterRestart для того чтобы оно запустило MagicUpdaterSettings с UI
                        //new StartSettingsViaPipe(_operationId).ActRun();

                        //Меняем состояние операции
                        if (_operationId > 0)
                        {
                            Operation.AddOperState(_operationId, OperStates.End);
                            Operation.SendOperationReport(_operationId, "", true);
                        }
                    }
                    catch (Exception ex)
                    {
                        if (_operationId > 0)
                        {
                            Operation.SendOperationReport(_operationId, $"Не удалось перезапустить обновленную версию службы службу MagicUpdater. Original: {ex.ToString()}", false);
                        }
                        NLogger.LogErrorToHdd($"Не удалось перезапустить обновленную версию службы службу MagicUpdater. Original: {ex.ToString()}", MainSettings.Constants.MAGIC_UPDATER_RESTART);
                    }
                }
                #endregion updateRestart

                #region waitForStartMagicUpdaterSettingsViaPipe
                if (args[0] == MainSettings.Constants.WAIT_FOR_START_SETTINGS_PARAMETER)
                {
                    try
                    {
                        bool startSettingsMessageRecieved = false;
                        Task.Factory.StartNew(() =>
                        {
                            PipeServer pipeServer = new PipeServer();
                            var res = pipeServer.RecieveSyncMessage();

                            if (res.ActionType == CommunicationActionType.StartMagicUpdaterSettings)
                            {
                                Tools.StartMagicUpdaterSettings();
                            }

                            startSettingsMessageRecieved = true;
                        });

                        while (!startSettingsMessageRecieved)
                        {
                        }
                    }
                    catch (Exception ex)
                    {
                        if (_operationId > 0)
                        {
                            Operation.SendOperationReport(_operationId, $"Не удалось запустить MagicUpdaterRestart для MagicUpdaterSettings. Original: {ex.ToString()}", false);
                        }
                        NLogger.LogErrorToHdd($"Не удалось запустить MagicUpdaterRestart для MagicUpdaterSettings. Original: {ex.ToString()}", MainSettings.Constants.MAGIC_UPDATER_RESTART);
                    }
                }
                #endregion waitForStartMagicUpdaterSettingsViaPipe
            }
            else
            {
                NLogger.LogErrorToHdd($"Обшибочные параметры запуска.", MainSettings.Constants.MAGIC_UPDATER_RESTART);
            }
        }
コード例 #6
0
        private void btnNextStep_Click(object sender, EventArgs e)
        {
            Button button = sender as Button;
            Pages  page   = (Pages)button.Tag;
            int    tag    = (int)button.Tag;

            switch (page)
            {
            case Pages.JsonSettings:
                #region JsonSettings
                //Сохраняем Json
                try
                {
                    btnNextStep.Enabled = false;
                    var formJson = new JsonLocalSettings
                    {
                        BaseTask     = txtBaseTask.Text,
                        ServerTask   = txtServerTask.Text,
                        PasswordTask = txtPasswordTask.Text,
                        UserTask     = txtUserTask.Text
                    };
                    if (!CheckSQLConnection(formJson, false))
                    {
                        LogString("Ошибка при попытке установить соединение с Sql базой заданий");
                        return;
                    }
                    LogString("Тест соединения с Sql базой заданий успешно пройден.");
                    try
                    {
                        LogString("Создание Json - файла с настроками.");
                        NewtonJson.WriteJsonFile(formJson, MainSettings.JsonSettingsFileFullPath);
                    }
                    catch (Exception ex)
                    {
                        LogString(ex);
                        MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    LogString("Json с настройками подключения к базе заданий создан успешно.");

                    LogString("Проверка Json - файла.");
                    var loadFromJsonResult = MainSettings.LoadFromJson();

                    if (!loadFromJsonResult.IsComplete)
                    {
                        LogString(loadFromJsonResult.Message);
                        MessageBox.Show(loadFromJsonResult.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    LogString("Проверка Json - файла завершена успешно.");

                    cbShopID.DisplayMember = "ShopId";
                    cbShopID.ValueMember   = "ShopId";
                    cbShopID.DataSource    = SqlWorks.ExecProc("SelectShopsList")?.Tables[0];

                    LogString("Поиск настроек агента в Sql базе заданий.");
                    var loadSettingsResult = MainSettings.LoadSettings();
                    if (!loadSettingsResult.IsComplete)
                    {
                        LogString($"{loadSettingsResult.Message} - настройки не найдены.");

                        try
                        {
                            //Пробуем узнать версию 1С
                            LogString("Пробуем узнать версию 1С");
                            const string CONST_PART_1C_AGENT_PATH = "\\bin\\ragent.exe";
                            foreach (ServiceController sc in ServiceController.GetServices())
                            {
                                using (ManagementObject wmiService = new ManagementObject("Win32_Service.Name='" + sc.ServiceName + "'"))
                                {
                                    wmiService.Get();
                                    string currentserviceExePath = wmiService["PathName"].ToString();
                                    if (currentserviceExePath.Contains(CONST_PART_1C_AGENT_PATH))
                                    {
                                        currentserviceExePath = currentserviceExePath.Replace(CONST_PART_1C_AGENT_PATH, "|");
                                        string pathCropped = currentserviceExePath.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries).First();
                                        txtVersion1C.Text = pathCropped.Split(new string[] { "\\" }, StringSplitOptions.RemoveEmptyEntries).Last();
                                        //Показываем baloon tool tip о том что версия была определена автоматически и может быть не корректной
                                        _isShowVersion1cToolTip = true;
                                        break;
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            LogString(ex);
                        }
                    }
                    else
                    {
                        LogString($"Настройки найдены.");

                        //SqlSettings
                        cbShopID.SelectedValue       = MainSettings.MainSqlSettings.ShopID;
                        tbBase1C.Text                = MainSettings.LocalSqlSettings.Base1C;
                        _is1CBaseOnServer            = MainSettings.LocalSqlSettings.Is1CBaseOnServer;
                        tbServerOrPath1C.Text        = (MainSettings.LocalSqlSettings.Is1CBaseOnServer ? MainSettings.LocalSqlSettings.Server1C : MainSettings.LocalSqlSettings.InformationBaseDirectory);
                        tbBase1C.Text                = MainSettings.LocalSqlSettings.Base1C;
                        txtUser1C.Text               = MainSettings.LocalSqlSettings.User1C;
                        txtPass1C.Text               = MainSettings.LocalSqlSettings.Pass1C;
                        txtVersion1C.Text            = MainSettings.LocalSqlSettings.Version1C;
                        txtTimeOut.Text              = MainSettings.LocalSqlSettings.OperationsListCheckTimeout.ToString();
                        txtSelfUpdatePath.Text       = MainSettings.LocalSqlSettings.SelfUpdatePath;
                        cbIsMainCashbox.Checked      = MainSettings.MainSqlSettings.IsMainCashbox;
                        cbIsServerLocated.Checked    = MainSettings.MainSqlSettings.Is1CServer;
                        cbIsCheck1C.Checked          = MainSettings.LocalSqlSettings.IsCheck1C;
                        tbSelfUpdateFtpServer.Text   = MainSettings.LocalSqlSettings.SelfUpdateFtpServer;
                        tbSelfUpdateFtpUser.Text     = MainSettings.LocalSqlSettings.SelfUpdateFtpUser;
                        tbSelfUpdateFtpPassword.Text = MainSettings.LocalSqlSettings.SelfUpdateFtpPassword;
                        tbSelfUpdateFtpPath.Text     = MainSettings.LocalSqlSettings.SelfUpdateFtpPath;
                    }
                }
                finally
                {
                    btnNextStep.Enabled = true;
                }
                ActivateSettingsPage(tabPageSettings);

                #endregion
                break;

            case Pages.MainAndLocalSqlSettings:
                #region MainAndLocalSqlSettings

                //Если компьютер не зарегистрирован, то регистрируем его
                #region RegisterAgent
                if (MainSettings.MainSqlSettings == null ||
                    !MainSettings.MainSqlSettings.ComputerId.HasValue ||
                    MainSettings.MainSqlSettings.ComputerId.Value == 0)
                {
                    LogString("Компьютер не зарегистрирован... Производится регистрация компьютера.");
                    var res = MainSettings.RegisterComputerId(ConvertSafe.ToString(cbShopID.SelectedValue));
                    if (!res.IsComplete)
                    {
                        LogString(res.Message);
                        MessageBox.Show(res.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    LogString("Регистрация компьютера произведена успешно.");

                    LogString("Проверка регистрации компьютера.");

                    var loadSettingsRes = MainSettings.LoadMainSettingsFromSQL();
                    if (!loadSettingsRes.IsComplete)
                    {
                        LogString($"{loadSettingsRes.Message} - настройки не найдены.");
                        MessageBox.Show($"{loadSettingsRes.Message} - настройки не найдены.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    if (MainSettings.MainSqlSettings == null ||
                        !MainSettings.MainSqlSettings.ComputerId.HasValue ||
                        MainSettings.MainSqlSettings.ComputerId.Value == 0)
                    {
                        LogString("Ошибка проверки регистрации компьютера. Не получен ComputerId.");
                        MessageBox.Show("Ошибка проверки регистрации компьютера. Не получен ComputerId.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    LogString("Проверка регистрации компьютера успешно завершена.");
                }
                #endregion

                btnNextStep.Enabled = _isServiceInstallComplete;

                try
                {
                    //Сохраняем главные настройки компьютера
                    LogString("Сохранение главных настроек компьютера.");
                    var formSqlMainSettings = new SqlMainSettings
                    {
                        ComputerId    = MainSettings.MainSqlSettings.ComputerId,
                        Is1CServer    = cbIsServerLocated.Checked,
                        IsMainCashbox = cbIsMainCashbox.Checked,
                        ShopID        = Convert.ToString(cbShopID.SelectedValue)
                    };
                    SqlWorks.SaveMainSqlSettingsToBase(formSqlMainSettings);
                }
                catch (Exception ex)
                {
                    LogString(ex);
                    MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                LogString("Настройки компьютера успешно сохранены.");

                try
                {
                    //Сохраняем дополнительные настройки компьютера
                    LogString("Сохранение дополнительных настроек компьютера.");
                    var sqlLocalSettings = new SqlLocalSettings
                    {
                        Base1C                     = tbBase1C.Text,
                        User1C                     = txtUser1C.Text,
                        Pass1C                     = txtPass1C.Text,
                        Version1C                  = txtVersion1C.Text,
                        IsCheck1C                  = cbIsCheck1C.Checked,
                        SelfUpdatePath             = txtSelfUpdatePath.Text,
                        OperationsListCheckTimeout = Convert.ToInt32(txtTimeOut.Text),
                        SelfUpdateFtpServer        = tbSelfUpdateFtpServer.Text,
                        SelfUpdateFtpUser          = tbSelfUpdateFtpUser.Text,
                        SelfUpdateFtpPassword      = tbSelfUpdateFtpPassword.Text,
                        SelfUpdateFtpPath          = tbSelfUpdateFtpPath.Text,
                        Is1CBaseOnServer           = _is1CBaseOnServer,
                        Server1C                   = MainSettings.LocalSqlSettings?.Server1C,
                        InformationBaseDirectory   = MainSettings.LocalSqlSettings?.InformationBaseDirectory
                    };

                    if (_is1CBaseOnServer)
                    {
                        sqlLocalSettings.Server1C = tbServerOrPath1C.Text;
                    }
                    else
                    {
                        sqlLocalSettings.InformationBaseDirectory = tbServerOrPath1C.Text;
                    }

                    var res = SqlWorks.SaveLocalSqlSettingsToBase(sqlLocalSettings);

                    if (!res.IsComplete)
                    {
                        LogString(res.Message);
                        MessageBox.Show(res.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    LogString(ex);
                    MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                LogString("Дополнительные настройки компьютера успешно сохранены.");

                LogString("Проверка настроек.");
                var loadSettingsresult = MainSettings.LoadSettings();
                if (!loadSettingsresult.IsComplete)
                {
                    LogString(loadSettingsresult.Message);
                    MessageBox.Show(loadSettingsresult.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                LogString("Проверка настроек успешно завершена.");
                ActivateSettingsPage(tabInstallService);
                #endregion

                LogString("Помечаем магазин как открытый.");
                SqlWorks.ExecProc("SetShopToOpen", ConvertSafe.ToString(cbShopID.SelectedValue));
                break;

            case Pages.InstallService:
                ActivateSettingsPage(tabControlTest);
                break;

            case Pages.ControlTest:
                this.Hide();
                NLogger.LogDebugToHdd("MagicUpdater успешно установлен.");
                MessageBox.Show("MagicUpdater успешно установлен.", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Application.Exit();
                break;

            case Pages.End:

                break;
            }
        }