public BaseAnswer FindAnswerFor(BaseQuestion bq) { BaseAnswer ba; _Answers.TryGetValue(bq, out ba); return ba; }
public bool HaveAncestor(BaseQuestion q) { if (this.Parent == q) return true; if (this.Parent is RootQuestion) return false; return this.Parent.HaveAncestor(q); }
public BaseAnswer AddAnswerFor(BaseQuestion bq) { BaseAnswer ba; _Answers.TryGetValue(bq, out ba); if (ba == null) { ba = (BaseAnswer)Activator.CreateInstance(bq.AnswerType); _Answers.Add(bq, ba); } return ba; }
public bool Contains(BaseQuestion q) { return q.HaveAncestor(this); }