private void btnOK_Click(object sender, EventArgs e) { if (ValidateFields() && CheckFeasibility()) { // create a new communication line CommLine commLineEntity = new CommLine { CommLineNum = Convert.ToInt32(numCommLineNum.Value), Name = txtName.Text, Descr = txtDescr.Text }; // insert the line in the configuration database project.ConfigBase.CommLineTable.AddItem(commLineEntity); project.ConfigBase.CommLineTable.Modified = true; // insert the line in the Communicator settings if (chkAddToComm.Checked && cbInstance.SelectedItem is Instance instance) { if (instance.CommApp.Enabled) { CommLineSettings = SettingsConverter.CreateCommLine(commLineEntity); CommLineSettings.Parent = instance.CommApp.Settings; instance.CommApp.Settings.CommLines.Add(CommLineSettings); } InstanceName = recentSelection.InstanceName = instance.Name; } recentSelection.CommLineNum = commLineEntity.CommLineNum; DialogResult = DialogResult.OK; } }
/// <summary> /// Imports communication lines and devices. /// </summary> private void Import(out bool noData) { noData = true; ImportedCommLines = new List <Settings.CommLine>(); ImportedDevices = new List <Settings.KP>(); Settings settings = instance.CommApp.Settings; foreach (TreeNode commLineNode in treeView.Nodes) { if (commLineNode.Checked) { CommLine commLineEntity = (CommLine)commLineNode.Tag; Settings.CommLine commLineSettings = CommLineSettings; if (commLineSettings == null) { // import communication line noData = false; commLineSettings = SettingsConverter.CreateCommLine(commLineEntity); commLineSettings.Parent = settings; settings.CommLines.Add(commLineSettings); ImportedCommLines.Add(commLineSettings); } foreach (TreeNode kpNode in commLineNode.Nodes) { if (kpNode.Checked) { // import device noData = false; KP kpEntity = (KP)kpNode.Tag; Settings.KP kpSettings = SettingsConverter.CreateKP(kpEntity, project.ConfigBase.KPTypeTable); kpSettings.Parent = commLineSettings; if (commEnvironment.TryGetKPView(kpSettings, true, null, out KPView kpView, out string errMsg)) { kpSettings.SetReqParams(kpView.DefaultReqParams); } commLineSettings.ReqSequence.Add(kpSettings); ImportedDevices.Add(kpSettings); } } } } }