private IEnumerable <EvaluatedAnswer> KeyToEvaluatedAnswers(IEnumerable <KeyEntity> keyEntities, TestEntity testEntity) { var orderedAnswerOptions = testEntity.TestAnswerOptions .Select(tao => new { tao.Order, tao.AnswerOptionId }); foreach (var keyEntity in keyEntities) { var currentQuestion = testEntity.Questions .Single(qe => qe.Id == keyEntity.QuestionId); if (testEntity.AreAnswerOptionsUnique) { orderedAnswerOptions = currentQuestion .QuestionAnswerOptions .Select(qao => new { qao.Order, qao.AnswerOptionId }); } int answerOptionIndex = orderedAnswerOptions .Single(oao => oao.AnswerOptionId == keyEntity.AnswerId) .Order; yield return(new EvaluatedAnswer { AnswerIndex = answerOptionIndex, QuestionIndex = currentQuestion.Order, Points = keyEntity.Points }); } }
public TestWithScales(TestEntity testEntity) : base(testEntity) { Scales = testEntity.GetScales() .Select(se => new Scale(se, testEntity)) .OrderBy(scale => scale.Name); }