private int CheckCondition(string condition, int i)
        {
            var conc = ConclusionClass.CheckIfStringIsFact(condition, _bases.FactBase.FactList);

            //TODO:trzeba sprawdzic metodę która sprawdza czy string jest faktem
            if (conc)
            {
                i++;
            }
            else
            {
                var value = ConclusionClass.FindConditionsOrReturnNull
                                (condition, _bases.RuleBase.RulesList);

                if (value == null)
                {
                    if (IsModel(condition) == false)
                    {
                        _viewModel.AskingForwardRuleValueMethod(condition);
                        i++;
                    }
                    else
                    {
                        if ((bool)_modelActions.ProcessModel(condition)) //todo: może byc jakiś problem
                        {
                            i++;
                        }
                        //todo:jeszcze trzeba będzie przelecieć przez
                    }
                }
            }
            return(i);
        }
        /// <summary>
        /// Checks the conclusion value or count model.
        /// </summary>
        /// <param name="askingTable">The asking table.</param>
        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
        private bool CheckConclusionValueOrCountModel(List <SimpleTree> askingTable)
        {
            int i = 0;

            foreach (SimpleTree simpleTree in askingTable)
            {
                _constrainActions.ConstrainAsk(simpleTree);
                if (simpleTree.Model)
                {
                    var checker = CheckIfStringIsFact(simpleTree.rule.Conclusion, _bases.FactBase.FactList);

                    if (checker == false)
                    {
                        var value = _modelActions.ProcessModel(simpleTree.rule.Conclusion);

                        if (value == null)
                        {
                            MessageBox.Show("Brak danych do ukonkretnienia modelu " + simpleTree.rule.Conclusion);
                            _bases.FactBase.FactList.Add(new Fact()
                            {
                                FactName  = simpleTree.rule.Conclusion,
                                FactValue = false
                            });
                        }
                        else
                        {
                            _bases.FactBase.FactList.Add(new Fact()
                            {
                                FactName  = simpleTree.rule.Conclusion,
                                FactValue = (bool)value
                            });
                            if ((bool)value)
                            {
                                i++;
                                IfParentTrueWrite(simpleTree);
                            }
                            else
                            {
                                break;
                            }
                            //TODO: trzeba sprawdziæ czy warunek jest faktem
                            simpleTree.ConclusionValue = (bool)value;
                        }
                    }
                }
                else
                {
                    if (CheckIfStringIsFact(simpleTree.rule.Conclusion, _bases.FactBase.FactList))
                    {
                        i++;
                        simpleTree.ConclusionValue = true;
                        IfParentTrueWrite(simpleTree);
                    }

                    else
                    {
                        _viewModel.AskingRuleValueMethod(simpleTree);


                        if (_viewModel.CheckedRuleVal)
                        {
                            i++;
                            IfParentTrueWrite(simpleTree); // Check if parent changed value to concrete
                        }
                    }
                }
            }

            if (i == askingTable.Count)
            {
                return(true); // hipoteza jest prawdziwa
            }
            return(false);    //else trzeba sprawdzac dalej
        }