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\" отсутствует или их более одного.")); } }
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; }
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) { } }
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 компьютера.")); } }
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]"; } } }
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); }
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; } } } }
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; }
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); }
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; } }
private void btnSave_Click(object sender, EventArgs e) { OperationGroupId = ConvertSafe.ToInt32(cbOperationGroup.SelectedValue); }
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); }
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); }
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")); } }