public TestSession(Question[] questions)
 {
     _questions = questions;
     TestCost = _questions.Sum(q => q.Cost);
     _currentQuestion = -1;
     Init();
 }
 public void Answer(Question question, params int[] variants)
 {
     var questionState = new OpenQuestionState(question as OpenQuestion, variants);
     _state[question] = questionState;
 }
 public void Answer(Question question, string answer)
 {
     var questionState = new ClosedQuestionState(question as ClosedQuestion, answer);
     _state[question] = questionState;
 }