예제 #1
0
 private void ButtonDelConclusionClick(object sender, EventArgs e)
 {
     if (_selectedConclusion.ValName == null && _selectedConclusion.VarName == null)
     {
         return;
     }
     InConclusion.Remove(_selectedConclusion);
     FillListViewConclusions();
 }
예제 #2
0
        private void ButtonChangeConclusionClick(object sender, EventArgs e)
        {
            if (_selectedConclusion.ValName == null && _selectedConclusion.VarName == null)
            {
                return;
            }
            //открывается форма добавления
            var f = new AddChangeFact(_es, _filePath, _dbFileName, "Изменение заключения", false, false)
            {
                Var = _es.Variables.Single(x => x.Name == _selectedConclusion.VarName),
                Val = _es.Values.Single(x => x.Name == _selectedConclusion.ValName),
            };

            if (f.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            //2. Если ОК, то выполняется проверка на совпадение
            var same = InConclusion.Where(x => x.VarName == f.Var.Name && x.ValName == f.Val.Name);

            if (same.Any())
            {
                MessageBox.Show("Такое заключение уже есть в этом правиле");
                return;
            }
            //3. Если не совпадает, то новая посылка добавляется в список
            InConclusion.Remove(_selectedConclusion);
            try
            {
                _selectedConclusion.VarName = f.Var.Name;
                _selectedConclusion.ValName = f.Val.Name;
                _selectedConclusion.Num     = InConclusion.Count + 1;
            }
            catch (ArgumentException exception)
            {
                MessageBox.Show(exception.Message);
            }
            InConclusion.Add(_selectedConclusion);
            FillListViewConclusions();
        }
예제 #3
0
        private void FOnEventAddConclusion(Variables var, Values val)
        {
            //Если ОК, то выполняется проверка на совпадение
            var same = InConclusion.Where(x => x.VarName == var.Name && x.ValName == val.Name);

            if (same.Any())
            {
                MessageBox.Show("Такое заключение уже есть в этом правиле");
                return;
            }
            //Если не совпадает, то новая посылка добавляется в список
            try
            {
                InConclusion.Add(new Fact {
                    VarName = var.Name, ValName = val.Name, Num = InConclusion.Count + 1
                });
            }
            catch (ArgumentException exception)
            {
                MessageBox.Show(exception.Message);
            }
            FillListViewConclusions();
        }