public void AddingFact(FactAboutElement factAboutElementNew)
 {
     stringBuilder.AppendLine(Indent() + string.Format("Dodawanie faktu {0} do elementu", factAboutElementNew.Name));
 }
        /// <summary>
        /// SearchForAnswer
        /// </summary>
        /// <param name="element"></param>
        /// <param name="question"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        private bool SearchForAnswer(Element element, Question question, bool value)
        {
            foreach (RuleArgument ruleArgument in question.Rule.Arguments)
            {
                Fact fact = Facts.Find(f => ruleArgument.Id == f.Id);
                logger.CheckingForArgument(fact);

                FactAboutElement factAboutElement = FindFactAboutElementWhichIsRuleArgument(element, ruleArgument);

                if (factAboutElement == null)
                {
                    Question answeringQuestion = FindQuestionForGivenFact(ruleArgument.Id);

                    if (answeringQuestion == null)
                    {
                        return false;
                    }

                    logger.SearchingForAnswer(element, answeringQuestion);
                    if (SearchForAnswer(element, answeringQuestion, ruleArgument.RequiredValue))
                    {
                        factAboutElement = FindFactAboutElementWhichIsRuleArgument(element, ruleArgument);
                    }
                }

                if (factAboutElement.Value != ruleArgument.RequiredValue)
                {
                    logger.ArgumentDoesNotMatch(ruleArgument);
                    return false;
                }
                logger.ArgumentMatch(ruleArgument);
            }

            FactAboutElement factAboutElementNew = new FactAboutElement
            {
                Id = question.Rule.Target.Id,
                Name = question.Rule.Target.Name,
                Value = value
            };

            logger.AddingFact(factAboutElementNew);
            element.Facts.Add(factAboutElementNew);
            logger.EnfOfCheckingIfFactCanBeAdded();
            return true;
        }
 public void AddingFact(FactAboutElement factAboutElementNew)
 {
 }