/// <summary>
        /// Load knowledge editor
        /// </summary>
        /// <param name="comboBox"></param>
        /// <param name="cbRules"></param>
        /// <param name="lbAllFacts"></param>
        /// <param name="rulesCreatingFact"></param>
        /// <param name="lbFactElement"></param>
        /// <param name="cbElements"></param>
        public void LoadKnowledgeEditorModule(ComboBox comboBox, ComboBox cbRules, ListBox lbAllFacts, ComboBox rulesCreatingFact, ListBox lbFactElement, ComboBox cbElements)
        {
            foreach (Fact fact in inferenceModule.Facts)
            {
                FactComboBoxItem factComboBoxItem = new FactComboBoxItem
                {
                    Id = fact.Id,
                    Name = fact.Name
                };

                comboBox.Items.Add(factComboBoxItem);
                rulesCreatingFact.Items.Add(factComboBoxItem);
                lbAllFacts.Items.Add(factComboBoxItem);
                lbFactElement.Items.Add(factComboBoxItem);
            }

            inferenceModule.Questions.ForEach(q => cbRules.Items.Add(new RuleComboBoxItem
            {
                Id = q.Rule.Id,
                Name = q.Rule.Name,
            }));

            inferenceModule.Elements.ForEach(e => cbElements.Items.Add(new FactComboBoxItem
            {
                Id = e.Id,
                Name = e.Name
            }));
        }
        /// <summary>
        /// RemoveFromArgumentList
        /// </summary>
        /// <param name="listBox"></param>
        /// <param name="checkedListBox"></param>
        public void RemoveFromArgumentList(ListBox listBox, CheckedListBox checkedListBox)
        {
            RuleArgumentListBoxItem ruleArgumentListBoxItem = checkedListBox.SelectedItem as RuleArgumentListBoxItem;

            if (ruleArgumentListBoxItem == null)
            {
                return;
            }

            checkedListBox.Items.Remove(ruleArgumentListBoxItem);
            FactComboBoxItem factComboBoxItem = new FactComboBoxItem
            {
                Id = ruleArgumentListBoxItem.Id,
                Name = ruleArgumentListBoxItem.Name
            };

            listBox.Items.Add(factComboBoxItem);
        }
        /// <summary>
        /// Add new fact to database
        /// </summary>
        /// <param name="comboBox"></param>
        /// <param name="listBox"></param>
        /// <param name="ruleCreatingFact"></param>
        /// <param name="elementsListBox"></param>
        public void AddFact(ComboBox comboBox, ListBox listBox, ComboBox ruleCreatingFact, ListBox elementsListBox)
        {
            string name = comboBox.Text;

            Guid guid = dataAccessLayer.InsertFact(name);
            FactComboBoxItem factComboBoxItem = new FactComboBoxItem
            {
                Id = guid,
                Name = name
            };

            comboBox.Items.Add(factComboBoxItem);
            listBox.Items.Add(factComboBoxItem);
            ruleCreatingFact.Items.Add(factComboBoxItem);
            elementsListBox.Items.Add(factComboBoxItem);
            comboBox.SelectedItem = factComboBoxItem;

            inferenceModule.Facts.Add(new Fact
            {
                Id = guid,
                Name = name
            });
        }