private void RuleFormLoad(object sender, EventArgs e) { if (Rule != null) { _rule = new Rule(Rule.Name); _rule.Name = Rule.Name; _rule.Premise = Rule.Premise; _rule.Conclusion = Rule.Conclusion; _rule.Reason = Rule.Reason; } else { _rule = new Rule($"Правило {KnowledgeBase.Rules.Count + 1}"); } textBoxName.Text = _rule.Name; foreach (var fact in _rule.Premise) { listBoxPremise.Items.Add(fact); } foreach (var fact in _rule.Conclusion) { listBoxConclusion.Items.Add(fact); } richTextBoxReason.Text = _rule.Reason; buttonChangePremise.Enabled = false; buttonDeletePremise.Enabled = false; buttonChangeConclusion.Enabled = false; buttonDeleteConclusion.Enabled = false; }
private void ButtonOkClick(object sender, EventArgs e) { DialogResult = DialogResult.OK; if (_rule.Premise.Count == 0) { DialogResult = DialogResult.None; MessageBox.Show("В посылке должен быть хотя бы один факт"); buttonAddPremise.Select(); buttonAddPremise.Focus(); return; } if (_rule.Premise.Count == 0) { DialogResult = DialogResult.None; MessageBox.Show("В заключении должен быть хотя бы один факт"); buttonAddConclusion.Select(); buttonAddConclusion.Focus(); return; } if (KnowledgeBase.Rules.Contains(_rule) && Rule?.Index != _rule.Index) { DialogResult = DialogResult.None; MessageBox.Show("Правило с таким именем уже есть"); textBoxName.Focus(); textBoxName.Select(); return; } if (string.IsNullOrWhiteSpace(_rule.Reason) || richTextBoxReason.Text == Rule.ToString()) { _rule.Reason = _rule.ToString(); } if (Rule == null) { Rule = new Rule(_rule.Name); } Rule.Name = _rule.Name; Rule.Premise = _rule.Premise; Rule.Conclusion = _rule.Conclusion; Rule.Reason = _rule.Reason; }