public override void Process()
        {
            base.Process();

            _radioButton          = new RadioButton();
            _radioButton.Text     = _SingleChoice_View_Answer_AnswerText;
            _radioButton.AutoSize = true;
            _radioButton.Font     = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            _radioButton.Location = new System.Drawing.Point(3, 3);
            _radioButton.UseVisualStyleBackColor = true;

            _radioButton.CheckedChanged += _radioButton_CheckedChanged;
            customFlowLayoutPanel1.Controls.Add(_radioButton);

            if (ConvertSafe.ToBoolean(_SingleChoice_View_Answer_AnswerCodes_OtherSpecify) == true)
            {
                _radioButton.Width = 350;
                _textBox           = new TextEdit();
                _textBox.Width     = customFlowLayoutPanel1.Width - _radioButton.Width - 150;
                _textBox.Font      = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                customFlowLayoutPanel1.Controls.Add(_textBox);
            }

            _radioButton_CheckedChanged(null, null);
            customFlowLayoutPanel1_Resize(null, null);
        }
        private void btnProperties_Click(object sender, EventArgs e)
        {
            var row = gvAnswers.GetDataRow(gvAnswers.FocusedRowHandle);

            if (row == null)
            {
                return;
            }
            using (var frm = new Properties.frmPropertiesMultiChoice())
            {
                frm.Initialize(Services);
                frm.Process(row);
                if (frm.ShowDialog() == DialogResult.OK)
                {
                    //update lai table
                    var rowHandle = ConvertSafe.ToInt32(frm.MultiChoice_View_Answer_AnswerIndex) - 1;
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerText", frm.MultiChoice_View_Answer_AnswerText);
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_VariableName", frm.MultiChoice_View_Answer_AnswerCodes_VariableName);
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_UnCheckedCode", ConvertSafe.ToInt32(frm.MultiChoice_View_Answer_AnswerCodes_UnCheckedCode));
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_CheckedCode", ConvertSafe.ToInt32(frm.MultiChoice_View_Answer_AnswerCodes_CheckedCode));
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_OtherSpecify", ConvertSafe.ToBoolean(frm.MultiChoice_View_Answer_AnswerCodes_OtherSpecify));
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_OtherSpecify_VariableName", frm.MultiChoice_View_Answer_AnswerCodes_OtherSpecify_VariableName);
                    gvAnswers.SetRowCellValue(rowHandle, "MultiChoice_View_Answer_AnswerCodes_OtherSpecify_InType", frm.MultiChoice_View_Answer_AnswerCodes_OtherSpecify_InType);
                    gvAnswers.UpdateCurrentRow();
                }
            }
        }
        private void CreateControls()
        {
            this.GenControls.Clear();
            this.panel1.Controls.Clear();

            foreach (DataRow row in FormFields.Rows)
            {
                var groupName   = row.Item("GroupName");
                var controlType = row.Item("ControlType");

                var control = CreateGenControl(groupName, controlType);

                control.Margin          = new System.Windows.Forms.Padding(0);
                control.FieldName       = row.Item("FieldName");
                control.FieldCaption    = row.Item("FieldCaption");
                control.LookupSource    = row.Item("LookupSource");
                control.WidthPercentage = ConvertSafe.ToInt32(row.Item("WidthPercentage"));
                control.HeightPixel     = ConvertSafe.ToInt32(row.Item("HeightPixel"));
                control.IsRequired      = ConvertSafe.ToBoolean(row.Item("IsRequired"));
                control.IsReadOnly      = ConvertSafe.ToBoolean(row.Item("IsReadOnly"));

                control.Initialize(Services);
                control.Process();
            }
        }
        //Тут используется "TryPluginOperation" на случай если эта процедура понадобиться как Public
        //Внутри этого класса проверка по "TryPluginOperation" отсутствует
        public static TryPluginOperation GetFromDll(string FullPath)
        {
            Assembly pluginAssembly = Assembly.Load(File.ReadAllBytes(FullPath));

            IEnumerable <Type> operationPlugin    = pluginAssembly.GetTypes().OfType <Type>().Where(w => w.IsPublic && !w.IsAbstract && (w.GetInterface("MagicUpdaterCommon.Abstract.IOperation", true) != null));
            IEnumerable <Type> attributesPlugin   = pluginAssembly.GetTypes().OfType <Type>().Where(w => w.IsPublic && !w.IsAbstract && (w.GetInterface("MagicUpdaterCommon.Abstract.IOperationAttributes", true) != null));
            IEnumerable <Type> registrationParams = pluginAssembly.GetTypes().OfType <Type>().Where(w => w.IsPublic && !w.IsAbstract && (w.GetInterface("MagicUpdaterCommon.Abstract.IRegistrationParams", true) != null));

            //Операция
            if (operationPlugin.Count() == 1)
            {
                Type operationPluginType = operationPlugin.First();
                Dictionary <string, string> registrationParamsDictionary = new Dictionary <string, string>();

                //Параметры для SQL
                if (registrationParams.Count() > 1)
                {
                    return(new TryPluginOperation(null, false, $"Неверный формат параметров SQL библиотеки подключаемой операции {FullPath}.  Интерфейс \"IRegistrationParams\" в количестве более одного."));
                }
                else if (registrationParams.Count() == 1)
                {
                    Type registrationParamsType     = registrationParams.First();
                    var  registrationParamsInstance = Activator.CreateInstance(registrationParamsType);
                    foreach (PropertyInfo pi in registrationParamsType.GetProperties())
                    {
                        registrationParamsDictionary.Add(pi.Name, ConvertSafe.ToString(pi.GetValue(registrationParamsInstance, null)));
                    }
                }

                //Атрибуты
                Type attributesPluginType = null;
                if (attributesPlugin.Count() == 1)
                {
                    attributesPluginType = attributesPlugin.First();
                }
                else if (attributesPlugin.Count() > 1)
                {
                    return(new TryPluginOperation(null, false, $"Неверный формат атрибутов библиотеки подключаемой операции {FullPath}.  Интерфейс \"IOperationAttributes\" отсутствует или их более одного."));
                }

                return(new TryPluginOperation(
                           new PluginOperation(operationPluginType.ToString()
                                               , operationPluginType.Name
                                               , attributesPluginType?.ToString()
                                               , FullPath
                                               , registrationParamsDictionary
                                               )));
            }
            else
            {
                return(new TryPluginOperation(null, false, $"Неверный формат библиотеки подключаемой операции {FullPath}. Интерфейс \"IOperation\" отсутствует или их более одного."));
            }
        }
Ejemplo n.º 5
0
        internal void SelectStringValue(string p)
        {
            if (CheckExistEnable() == true)
            {
                return;
            }
            List <String> listAnswerCode = new List <string>();

            foreach (Control ctr in customFlowLayoutPanel1.Controls)
            {
                if (ctr.GetType() == typeof(GenSingleRadioButtonUnit) && ConvertSafe.ToBoolean(((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCodes_OtherSpecify) == false)
                {
                    listAnswerCode.Add(((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCoding);
                }
            }

            //lay ki tu cuoi cùng



            int maxCountLength = findMaxCountLengthAnswerCode(listAnswerCode);

            if (p.Length < maxCountLength)
            {
                return;
            }

            string lastAnswer = p.Substring(p.Length - maxCountLength, maxCountLength);

            foreach (Control ctr in customFlowLayoutPanel1.Controls)
            {
                if (ctr.GetType() == typeof(GenSingleRadioButtonUnit))
                {
                    string covertAnswerCode = ((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCoding;

                    while (covertAnswerCode.Length < maxCountLength)
                    {
                        covertAnswerCode = "0" + covertAnswerCode;
                    }

                    if (covertAnswerCode == lastAnswer && ((GenSingleRadioButtonUnit)ctr).Visible == true && ConvertSafe.ToBoolean(((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCodes_OtherSpecify) == false)
                    {
                        (ctr as GenSingleRadioButtonUnit).Checked = true;
                        //this.RaiseEvent(KeyF1Press);
                    }
                    else
                    {
                        (ctr as GenSingleRadioButtonUnit).Checked = false;
                    }
                }
            }
        }
        private void gridView1_DoubleClick(object sender, EventArgs e)
        {
            var row = gridView1.GetDataRow(gridView1.FocusedRowHandle);

            if (row == null)
            {
                return;
            }
            SelectedProjectNo          = row.Item("ProjectNo");
            SelectedProjectID          = row.Item("ProjectID");
            SelectedCityHandle         = row.Item("CityHandle");
            SelectedIsNeedPlaceProduct = ConvertSafe.ToBoolean(row.Item("IsNeedPlaceProduct"));
            DialogResult = DialogResult.OK;
        }
Ejemplo n.º 7
0
        private static object GetFieldValue(DataTable data, string FieldName)
        {
            var type = data._FindValue("FieldType", "FieldName", FieldName);

            if (type == "string")
            {
                return(ConvertSafe.ToString(data._FindValue("FieldValue", "FieldName", FieldName)));
            }

            if (type == "double")
            {
                return(Convert.ToDouble((data._FindValue("FieldValue", "FieldName", FieldName))));
            }
            return(null);
        }
        private void textEdit2_EditValueChanged(object sender, EventArgs e)
        {
            if (textEdit2.Text.ToString().Length == 2)
            {
                textEdit3.Focus();
                textEdit3.SelectAll();
            }

            if (ConvertSafe.ToInt32(textEdit2.Text.Trim()) >= 2)
            {
                FormatMonth();
                textEdit3.Focus();
                textEdit3.SelectAll();
            }
        }
        private void textEdit1_EditValueChanged(object sender, EventArgs e)
        {
            if (textEdit1.Text.ToString().Length == 2)
            {
                textEdit2.Focus();
                textEdit2.SelectAll();
            }

            if (ConvertSafe.ToInt32(textEdit1.Text.Trim()) >= 4)
            {
                FormatNgay();
                textEdit2.Focus();
                textEdit2.SelectAll();
            }
            SetMaskThang();
        }
        private void gvProjects_CustomSummaryCalculate(object sender, DevExpress.Data.CustomSummaryEventArgs e)
        {
            GridView View = sender as GridView;

            if (e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Start)
            {
                count = 0;
            }
            if (e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Calculate)
            {
                if (ConvertSafe.ToBoolean(View.GetDataRow(e.RowHandle).Item("ProjectIsActived")) == true)
                {
                    count = count + 1;
                }
                e.TotalValue = count;
            }
            if (e.SummaryProcess == DevExpress.Data.CustomSummaryProcess.Finalize)
            {
            }
        }
Ejemplo n.º 11
0
        public static TryRegisterComputerId RegisterComputerId(string shopId, bool is1CServer = true, bool isMainCashbox = false)
        {
            if (string.IsNullOrEmpty(shopId))
            {
                return(new TryRegisterComputerId(0, false, "Пустой Id магазина"));
            }

            DataSet dsShop = SqlWorks.ExecProc("IsShopExists", shopId);

            if (dsShop == null || ConvertSafe.ToInt32(dsShop.Tables[0].Rows[0]["result"]) == 0)
            {
                return(new TryRegisterComputerId(0, false, $"Магазин с id = {shopId} отсутствует"));
            }

            DataSet ds = SqlWorks.ExecProc("RegisterComputer",
                                           shopId,
                                           Environment.MachineName,
                                           NetWork.GetLocalIPAddress(),
                                           is1CServer,
                                           isMainCashbox,
                                           HardwareInfo.GetMacAddress());

            if (ds != null)
            {
                int?id = Convert.ToInt32(ds.Tables[0].Rows[0]["ComputerId"]);
                if (id.HasValue)
                {
                    return(new TryRegisterComputerId(id.Value));
                }
                else
                {
                    NLogger.LogErrorToHdd("Ошибка регистрации. Не удалось получить ID компьютера.", MainSettings.Constants.MAGIC_UPDATER);
                    return(new TryRegisterComputerId(0, false, "Ошибка регистрации. Не удалось получить ID компьютера."));
                }
            }
            else
            {
                NLogger.LogErrorToHdd("Ошибка регистрации. Не удалось получить ID компьютера.", MainSettings.Constants.MAGIC_UPDATER);
                return(new TryRegisterComputerId(0, false, "Ошибка регистрации. Не удалось получить ID компьютера."));
            }
        }
Ejemplo n.º 12
0
        public TryLoadSettingsFromSql LoadSqlMainSettingsFromSQL()
        {
            DataSet ds = null;

            ds = SqlWorks.ExecProcExt(MainSettings.JsonSettings.ConnectionString, "GetComputerSettingsViaMac", HardwareInfo.GetMacAddress());
            if (ds != null)
            {
                ComputerId    = ConvertSafe.ToInt32(ds.Tables[0].Rows[0]["ComputerId"]);
                ShopID        = ConvertSafe.ToString(ds.Tables[0].Rows[0]["ShopId"]);
                Is1CServer    = ConvertSafe.ToBoolean(ds.Tables[0].Rows[0]["Is1CServer"]);
                IsMainCashbox = ConvertSafe.ToBoolean(ds.Tables[0].Rows[0]["IsMainCashbox"]);
                return(new TryLoadSettingsFromSql());
            }
            else
            {
                ComputerId    = 0;
                ShopID        = string.Empty;
                Is1CServer    = false;
                IsMainCashbox = false;
                return(new TryLoadSettingsFromSql(false, "Компьтер не зарегистрирован."));
            }
        }
 private void SetMaskThang()
 {
     if (ConvertSafe.ToInt32(textEdit1.Text.Trim()) <= 29)
     {
         textEdit2.Properties.Mask.EditMask = "[1-9]|[1][0-2]|[0][1-9]";
     }
     else
     {
         if (ConvertSafe.ToInt32(textEdit1.Text.Trim()) == 30)
         {
             textEdit2.Properties.Mask.EditMask = "[13456789]|[1][0-2]|[0][13456789]";
         }
         else if (ConvertSafe.ToInt32(textEdit1.Text.Trim()) == 31)
         {
             textEdit2.Properties.Mask.EditMask = "[13578]|[1][02]|[0][13578]";
         }
         else
         {
             textEdit2.Properties.Mask.EditMask = "[1-9]|[1][0-2]|[0][1-9]";
         }
     }
 }
Ejemplo n.º 14
0
        public void Populate(DataTable table)
        {
            last_x     = 0;
            row_y      = 0;
            row_height = 0;

            foreach (DataRow row in table.Rows)
            {
                var group   = row.Item("Group");
                var name    = row.Item("Name");
                var height  = ConvertSafe.ToInt32(row.Item("Height"));
                var width   = ConvertSafe.ToInt32(row.Item("Width"));
                var type    = row.Item("Type");
                var value   = row.Item("Value");
                var options = row.Item("Options");

                var groupControl = this.FindGroup(group);
                groupControl.CreateControl((int)(height * 1.2), width, type, name, value, options);
            }

            this.OnResize(EventArgs.Empty);
        }
Ejemplo n.º 15
0
 internal void SelectValue(int p)
 {
     //kiem tra xem co textbox nao dang enable k???
     if (CheckExistEnable() == true)
     {
         return;
     }
     foreach (Control ctr in customFlowLayoutPanel1.Controls)
     {
         if (ctr.GetType() == typeof(GenSingleRadioButtonUnit))
         {
             if (((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCoding == p.ToString() && ((GenSingleRadioButtonUnit)ctr).Visible == true && ConvertSafe.ToBoolean(((GenSingleRadioButtonUnit)ctr)._SingleChoice_View_Answer_AnswerCodes_OtherSpecify) == false)
             {
                 (ctr as GenSingleRadioButtonUnit).Checked = true;
                 //this.RaiseEvent(KeyF1Press);
             }
             else
             {
                 (ctr as GenSingleRadioButtonUnit).Checked = true;
             }
         }
     }
 }
Ejemplo n.º 16
0
        private void cbQuestion_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbQuestion.SelectedValue == null)
            {
                cbQuestionCode.SelectedIndex = -1;
                return;
            }

            DataTable data = (cbQuestion.DataSource as DataTable);
            var       row  = data.Rows[cbQuestion.SelectedIndex];

            if (row == null)
            {
                cbRule.SelectedIndex = -1;
                return;
            }

            var dt = new DataTable();

            dt.Columns.Add("QuestionID", typeof(string));
            dt.Columns.Add("FieldName", typeof(string));
            dt.Columns.Add("FieldValue", typeof(string));
            if (row.Item("QuestionTypeName") == "Free Text")
            {
                var new_row = dt.NewRow();
                new_row["QuestionID"] = row.Item("QuestionID");
                new_row["FieldName"]  = row.Item("FreeText_Variables_VariablesName");
                new_row["FieldValue"] = "";

                dt.Rows.Add(new_row);
            }
            if (row.Item("QuestionTypeName") == "Single Choice")
            {
                var answer_list = row.Item("SingleChoice_Answer_AnswerList").JSONToDataTable();
                foreach (DataRow r in answer_list.Rows)
                {
                    var new_row = dt.NewRow();
                    new_row["QuestionID"] = row.Item("QuestionID");
                    new_row["FieldName"]  = r.Item("SingleChoice_View_Answer_AnswerCodes_VariableName");
                    new_row["FieldValue"] = "";
                    dt.Rows.Add(new_row);

                    if (ConvertSafe.ToBoolean(r.Item("SingleChoice_View_Answer_AnswerCodes_OtherSpecify")) == true)
                    {
                        var c_new_row = dt.NewRow();
                        c_new_row["QuestionID"] = row.Item("QuestionID");
                        c_new_row["FieldName"]  = r.Item("SingleChoice_View_Answer_AnswerCodes_OtherSpecify_VariableName");
                        c_new_row["FieldValue"] = "";
                        dt.Rows.Add(c_new_row);
                    }
                }
            }

            if (row.Item("QuestionTypeName") == "Multi Choice")
            {
                var answer_list = row.Item("MultiChoice_Answer_AnswerList").JSONToDataTable();
                foreach (DataRow r in answer_list.Rows)
                {
                    var new_row = dt.NewRow();
                    new_row["QuestionID"] = row.Item("QuestionID");
                    new_row["FieldName"]  = r.Item("MultiChoice_View_Answer_AnswerCodes_VariableName");
                    new_row["FieldValue"] = "";
                    dt.Rows.Add(new_row);

                    if (ConvertSafe.ToBoolean(r.Item("MultiChoice_View_Answer_AnswerCodes_OtherSpecify")) == true)
                    {
                        var c_new_row = dt.NewRow();
                        c_new_row["QuestionID"] = row.Item("QuestionID");
                        c_new_row["FieldName"]  = r.Item("MultiChoice_View_Answer_AnswerCodes_OtherSpecify_VariableName");
                        c_new_row["FieldValue"] = "";
                        dt.Rows.Add(c_new_row);
                    }
                }
            }
            cbQuestionCode.DataSource = dt;
        }
Ejemplo n.º 17
0
 private bool CheckAgentIsOn()
 {
     try
     {
         if (MainSettings.MainSqlSettings.ComputerId.HasValue)
         {
             var ds = SqlWorks.ExecProc("GetComputerById", MainSettings.MainSqlSettings.ComputerId.Value);
             if (ds != null &&
                 ds.Tables.Count > 0 &&
                 ds.Tables[0].Rows.Count > 0)
             {
                 bool isOn = ConvertSafe.ToInt32(ds.Tables[0].Rows[0]["IsON"]) == 1 ? true : false;
                 if (isOn)
                 {
                     if (this.InvokeRequired)
                     {
                         this.Invoke(new MethodInvoker(() =>
                         {
                             lbAgentStatus.Text      = "Агент отчитывается в базу";
                             lbAgentStatus.BackColor = Color.LightGreen;
                         }));
                     }
                     else
                     {
                         lbAgentStatus.Text      = "Агент отчитывается в базу";
                         lbAgentStatus.BackColor = Color.LightGreen;
                     }
                     return(true);
                 }
                 else
                 {
                     if (this.InvokeRequired)
                     {
                         this.Invoke(new MethodInvoker(() =>
                         {
                             lbAgentStatus.Text      = "Агент не отчитывается в базу";
                             lbAgentStatus.BackColor = Color.Pink;
                         }));
                     }
                     else
                     {
                         lbAgentStatus.Text      = "Агент не отчитывается в базу";
                         lbAgentStatus.BackColor = Color.Pink;
                     }
                     return(false);
                 }
             }
             else
             {
                 if (this.InvokeRequired)
                 {
                     this.Invoke(new MethodInvoker(() =>
                     {
                         lbAgentStatus.Text      = "Агент не отчитывается в базу";
                         lbAgentStatus.BackColor = Color.Pink;
                     }));
                 }
                 else
                 {
                     lbAgentStatus.Text      = "Агент не отчитывается в базу";
                     lbAgentStatus.BackColor = Color.Pink;
                 }
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         if (this.InvokeRequired)
         {
             this.Invoke(new MethodInvoker(() =>
             {
                 lbAgentStatus.Text      = "Агент не отчитывается в базу";
                 lbAgentStatus.BackColor = Color.Pink;
             }));
         }
         else
         {
             lbAgentStatus.Text      = "Агент не отчитывается в базу";
             lbAgentStatus.BackColor = Color.Pink;
         }
         return(false);
     }
     return(false);
 }
Ejemplo n.º 18
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;
            }
        }
Ejemplo n.º 19
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     OperationGroupId = ConvertSafe.ToInt32(cbOperationGroup.SelectedValue);
 }
Ejemplo n.º 20
0
        private DataTable GetDataView(DataTable tblQuestion, DataTable tblData)
        {
            foreach (DataRow row in tblQuestion.Rows)
            {
                row["QuestionName"] = HtmlToPlainText(row.Item("QuestionNameHTMLText"));
                int QuestionTypeID = ConvertSafe.ToInt32(row.Item("QuestionTypeID"));
                if (QuestionTypeID == 1)
                {
                    //tim tat ca nhung cau tra loi
                    var values = tblData.Select(string.Format("QuestionCode='{0}'", row.Item("QuestionCode")));
                    if (values.Count() > 0)
                    {
                        //tim value da chon luc truoc.
                        string result      = "";
                        bool   IsLocked    = false;
                        string valueSelect = tblData._FindValue("AnswerText", "FieldName", row.Item("QuestionCode"));
                        result = valueSelect;
                        //tim value khac
                        foreach (DataRow c_row in values)
                        {
                            if (c_row.Item("FieldName") != row.Item("QuestionCode"))
                            {
                                if (c_row.Item("AnswerText").IsNotEmpty())
                                {
                                    result += "[" + c_row.Item("AnswerText") + "]";
                                }
                            }

                            if (ConvertSafe.ToBoolean(c_row.Item("IsLocked")) == true)
                            {
                                IsLocked = true;
                            }
                        }
                        row["checked"]    = IsLocked;
                        row["AnswerText"] = result;
                    }
                }
                if (QuestionTypeID == 2)
                {
                    var values = tblData.Select(string.Format("QuestionCode='{0}'", row.Item("QuestionCode")));
                    if (values.Count() > 0)
                    {
                        //tim value da chon luc truoc.
                        string result   = "";
                        bool   IsLocked = false;
                        var    dt       = row.Item("MultiChoice_Answer_AnswerList").JSONToDataTable();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            var    c_row     = dt.Rows[i];
                            string var_name  = c_row.Item("MultiChoice_View_Answer_AnswerCodes_VariableName");
                            string valuetext = tblData._FindValue("AnswerText", "FieldName", var_name);
                            if (valuetext.IsNotEmpty())
                            {
                                result += valuetext;
                                string valuetextOther = tblData._FindValue("AnswerText", "FieldName", row.Item("QuestionCode") + "_" + c_row.Item("MultiChoice_View_Answer_AnswerCodes_VariableName") + "_K");
                                if (valuetextOther.IsNotEmpty())
                                {
                                    result += "[" + valuetextOther + "]";
                                }
                                result += Environment.NewLine;
                            }
                        }
                        foreach (var row_c in values)
                        {
                            if (ConvertSafe.ToBoolean(row_c.Item("IsLocked")) == true)
                            {
                                IsLocked = true;
                            }
                        }
                        row["checked"]    = IsLocked;
                        row["AnswerText"] = result;
                    }
                }
                if (QuestionTypeID == 3)
                {
                    bool IsLocked = false;


                    row["AnswerText"] = tblData._FindValue("AnswerText", "FieldName", row.Item("QuestionCode"));

                    var values = tblData.Select(string.Format("QuestionCode='{0}'", row.Item("QuestionCode")));
                    foreach (var row_c in values)
                    {
                        if (ConvertSafe.ToBoolean(row_c.Item("IsLocked")) == true)
                        {
                            IsLocked = true;
                        }
                    }
                    row["checked"] = IsLocked;
                }

                if (QuestionTypeID == 5)
                {
                }
                if (QuestionTypeID == 6)
                {
                }
                if (QuestionTypeID == 7)
                {
                    bool IsLocked = false;
                    row["AnswerText"] = tblData._FindValue("AnswerText", "FieldName", row.Item("QuestionCode"));

                    var values = tblData.Select(string.Format("QuestionCode='{0}'", row.Item("QuestionCode")));
                    foreach (var row_c in values)
                    {
                        if (ConvertSafe.ToBoolean(row_c.Item("IsLocked")) == true)
                        {
                            IsLocked = true;
                        }
                    }

                    row["checked"] = IsLocked;
                }
            }

            return(tblQuestion);
        }
Ejemplo n.º 21
0
        public static SqlServerCheckResult CheckBases(string hostName)
        {
            var result = new SqlServerCheckResult();

            var baseData       = OptionsHelper.GetDataBaseOptions(hostName);
            var basesIgnorList = OptionsHelper.GetDatabasesNameToIgnor(hostName);

            if (!baseData.IsNesseseryToCheckSqlBases ||
                string.IsNullOrEmpty(baseData.Login) ||
                string.IsNullOrEmpty(baseData.Password))
            {
                result.ErrorMessage = $@"Checking of database on server '{hostName}' is not nesessary or login/password did not load";
                return(result);
            }
            var connection = new SqlConnection(
                $"user id={baseData.Login};" +
                $"password={baseData.Password};server={hostName};" +
                $"database=master; " +
                $"connection timeout=30");

            try
            {
                connection.Open();
                SqlDataReader reader    = null;
                SqlCommand    myCommand = new SqlCommand("select ssdb.name, ssdb.status, sdb.state_desc from sys.sysdatabases ssdb " +
                                                         "join sys.databases sdb on ssdb.name = sdb.name", connection);
                reader = myCommand.ExecuteReader();
                while (reader.Read())
                {
                    var baseName = reader["name"].ToString();
                    if (basesIgnorList?.Contains(baseName) ?? false)
                    {
                        continue;
                    }
                    var baseStatus       = ConvertSafe.ToInt32(reader["status"]);
                    var baseStatusSimple = reader["state_desc"].ToString();

                    var statuses = GetBaseStatusesByStatusCode(baseStatus);

                    if (
                        (
                            !(
                                statuses.Contains(Constants.DatabaseStates.ONLINE) ||
                                statuses.Contains(Constants.DatabaseStates.TRUNCATE_LOG_ON_CHKPT) ||
                                statuses.Contains(Constants.DatabaseStates.TORN_PAGE_DETECTION)
                                )
                        ) ||
                        baseStatusSimple.ToUpper() != Constants.DatabaseStates.SIMPLE_STATUS_ONLINE
                        )
                    {
                        statuses.Add(baseStatusSimple);

                        result.DataBaseInfoList.Add(new DataBaseInfoModel()
                        {
                            Name     = baseName,
                            Statuses = statuses
                        });
                    }
                }
            }
            catch (Exception e)
            {
                result.ErrorMessage = $"DataBase on server '{hostName}' get databases list error: {e.Message}";
                Logger.LogError($"Database error. ^^^Direct write to log^^^ ERROR:{result.ErrorMessage}{Environment.NewLine}Full error text: {e.ToString()}");
            }
            finally
            {
                if (connection.State == System.Data.ConnectionState.Open)
                {
                    connection.Close();
                }
            }
            return(result);
        }
Ejemplo n.º 22
0
        public static TryRegisterPlugin RegisterOrUpdatePluginLastModifiedDate(string fileName)
        {
            string dllLocalFullPath = Path.Combine(MainSettings.Constants.PluginOperationDllDirectoryPath, fileName);

            string dllFtpFullPath = Path.Combine(MainSettings.GlobalSettings.SelfUpdateFtpPath
                                                 , MainSettings.Constants.OPERATION_PLUGIN_DIRECTORY_NAME
                                                 , fileName);
            DateTime?ftpFileLastModifiedDate = FtpWorks.GetFileLastModifiedDate(MainSettings.GlobalSettings.SelfUpdateFtpServer
                                                                                , MainSettings.GlobalSettings.SelfUpdateFtpUser
                                                                                , MainSettings.GlobalSettings.SelfUpdateFtpPassword
                                                                                , Path.Combine(MainSettings.GlobalSettings.SelfUpdateFtpPath, MainSettings.Constants.OPERATION_PLUGIN_DIRECTORY_NAME)
                                                                                , fileName);

            if (ftpFileLastModifiedDate.HasValue)
            {
                try
                {
                    DataSet ds = SqlWorks.ExecProc("GetOperationTypeByFileName", fileName);
                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                    {
                        //Регистрируем
                        //Актуализируем файл из фтп, если нужно
                        var res = GetOrUpdateFileFromFtpLastModifiedDate(fileName, null);
                        if (!res.IsComplete)
                        {
                            return(new TryRegisterPlugin(false, $"Ошибка скачивания файла ({fileName}) с ftp в директорию ({MainSettings.Constants.PluginOperationDllDirectoryPath})"));
                        }
                        else
                        {
                            /*
                             * @Name nvarchar(512)
                             * ,@NameRus nvarchar(512)
                             * ,@GroupId int
                             * ,@FileName nvarchar(510)
                             * ,@FileMD5 nvarchar(64)
                             * ,@Description nvarchar(MAX)
                             */

                            //Пробуем получить имя типа операции
                            var dllResult = GetFromDll(dllLocalFullPath);
                            if (!dllResult.IsComplete)
                            {
                                return(new TryRegisterPlugin(false, $"Ошибка получения типа операции из файла ({dllLocalFullPath})"));
                            }

                            var addDs = SqlWorks.ExecProc("AddOperationType"
                                                          , dllResult.PluginOperationInstance.SqlName
                                                          , ""
                                                          , 1
                                                          , fileName
                                                          , ftpFileLastModifiedDate
                                                          , MD5Works.GetFileHash(dllLocalFullPath).ToUpper()
                                                          , "");

                            if (addDs != null && addDs.Tables.Count > 0 && addDs.Tables[0].Rows.Count > 0)
                            {
                                int id = ConvertSafe.ToInt32(addDs.Tables[0].Rows[0]["Id"]);
                                foreach (var param in dllResult.PluginOperationInstance.RegistrationParams)
                                {
                                    var resDs = SqlWorks.ExecProc("UpdateOperationTypesFieldsById"
                                                                  , id
                                                                  , param.Key
                                                                  , param.Value);

                                    if (resDs != null && resDs.Tables.Count > 0 && resDs.Tables[0].Rows.Count > 0)
                                    {
                                        if (Convert.ToInt32(resDs.Tables[0].Rows[0]["ResultId"]) == -1)
                                        {
                                            return(new TryRegisterPlugin(false, $"Ошибка записи параметров SQL из файла ({dllLocalFullPath}). SQL Error: {Convert.ToString(resDs.Tables[0].Rows[0]["Message"])}"));
                                        }
                                    }
                                    else
                                    {
                                        return(new TryRegisterPlugin(false, $"Ошибка записи параметров SQL из файла ({dllLocalFullPath})"));
                                    }
                                }
                            }

                            return(new TryRegisterPlugin());
                        }
                    }
                    else
                    {
                        DataRow  dr          = ds.Tables[0].Rows[0];
                        DateTime?sqlDateTime = null;
                        try
                        {
                            sqlDateTime = (DateTime?)dr["LastModifiedDate"];
                        }
                        catch
                        {
                            sqlDateTime = null;
                        }
                        //Обновляем, если нужно
                        if (!Extensions.IsNullableDateTimeIdentical(ftpFileLastModifiedDate, sqlDateTime))
                        {
                            //Актуализируем файл из фтп, если нужно
                            var res = GetOrUpdateFileFromFtpLastModifiedDate(fileName, sqlDateTime);
                            if (!res.IsComplete)
                            {
                                return(new TryRegisterPlugin(false, $"Ошибка скачивания файла ({fileName}) с ftp в директорию ({MainSettings.Constants.PluginOperationDllDirectoryPath})"));
                            }
                            else
                            {
                                var dllResult = GetFromDll(dllLocalFullPath);
                                if (!dllResult.IsComplete)
                                {
                                    return(new TryRegisterPlugin(false, $"Ошибка получения типа операции из файла ({dllLocalFullPath})"));
                                }

                                SqlWorks.ExecProc("UpdateOperationTypeById"
                                                  , Convert.ToInt32(dr["Id"])
                                                  , dllResult.PluginOperationInstance.SqlName
                                                  , ""
                                                  , 1
                                                  , fileName
                                                  , ftpFileLastModifiedDate
                                                  , MD5Works.GetFileHash(dllLocalFullPath).ToUpper()
                                                  , "");

                                foreach (var param in dllResult.PluginOperationInstance.RegistrationParams)
                                {
                                    var resDs = SqlWorks.ExecProc("UpdateOperationTypesFieldsById"
                                                                  , Convert.ToInt32(dr["Id"])
                                                                  , param.Key
                                                                  , param.Value);

                                    if (resDs != null && resDs.Tables.Count > 0 && resDs.Tables[0].Rows.Count > 0)
                                    {
                                        if (Convert.ToInt32(resDs.Tables[0].Rows[0]["ResultId"]) == -1)
                                        {
                                            return(new TryRegisterPlugin(false, $"Ошибка записи параметров SQL из файла ({dllLocalFullPath}). SQL Error: {Convert.ToString(resDs.Tables[0].Rows[0]["Message"])}"));
                                        }
                                    }
                                    else
                                    {
                                        return(new TryRegisterPlugin(false, $"Ошибка записи параметров SQL из файла ({dllLocalFullPath})"));
                                    }
                                }

                                return(new TryRegisterPlugin());
                            }
                        }

                        return(new TryRegisterPlugin());
                    }
                }
                catch (Exception ex)
                {
                    return(new TryRegisterPlugin(false, ex.ToString()));
                }
            }
            else
            {
                return(new TryRegisterPlugin(false, $"Не удалось получить дату последнего изменения файла ({fileName}) по ftp"));
            }
        }