private static bool RegisterViaMac(SqlMainSettings newSettings)
        {
            bool    result = true;
            DataSet ds     = SqlWorks.ExecProc("RegisterComputer_Service",
                                               newSettings.ShopID,
                                               Environment.MachineName,
                                               NetWork.GetLocalIPAddress(),
                                               newSettings.Is1CServer,
                                               newSettings.IsMainCashbox,
                                               HardwareInfo.GetMacAddress());

            if (ds != null)
            {
                int? id    = Convert.ToInt32(ds.Tables[0].Rows[0]["ComputerId"]);
                bool isNew = Convert.ToBoolean(ds.Tables[0].Rows[0]["isNew"]);

                if (id == 0)
                {
                    id = null;
                }

                newSettings.ComputerId = id;

                if (!isNew && id != null)
                {
                    ChangeComputerParams(newSettings);
                }
            }
            else
            {
                result = false;
            }
            return(result);
        }
        private static bool ChangeComputerParams(SqlMainSettings newSettings)
        {
            bool    result = true;
            DataSet ds     = SqlWorks.ExecProc("ChangeComputerParams_Servece",
                                               newSettings.ComputerId,
                                               newSettings.ShopID,
                                               Environment.MachineName,
                                               NetWork.GetLocalIPAddress(),
                                               newSettings.Is1CServer,
                                               newSettings.IsMainCashbox,
                                               Extensions.GetApplicationVersion());

            if (ds == null)
            {
                result = false;
            }
            return(result);
        }
Beispiel #3
0
 public static void SaveMainSqlSettingsToBase(SqlMainSettings sqlMainSettings)
 {
     ExecProc("SetMainSqlSettings", sqlMainSettings.ComputerId, sqlMainSettings.ShopID, sqlMainSettings.Is1CServer, sqlMainSettings.IsMainCashbox);
 }
Beispiel #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);
        }
Beispiel #5
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;
            }
        }