コード例 #1
0
        /// <summary>
        /// Returns a mock question generator.
        /// </summary>
        private Mock <IQuestionGenerator> GetMockQuestionGenerator(
            GeneratedQuestionTemplate question,
            QuestionGenerationResult generationResult = null)
        {
            var questionGenerator = new Mock <IQuestionGenerator>();

            questionGenerator
            .Setup(qg => qg.GenerateQuestionAsync(question, 0 /*seed*/))
            .ReturnsAsync(generationResult);

            return(questionGenerator);
        }
コード例 #2
0
        /// <summary>
        /// Applies a new generated question instance to a given question.
        /// </summary>
        private void ApplyQuestionGenerationResult(
            UserQuestionData userQuestionData,
            QuestionGenerationResult result,
            DateTime generationTime)
        {
            if (result.Error != null)
            {
                throw new InvalidOperationException("Failed to regenerate question.");
            }

            if (userQuestionData.Seed != result.Seed)
            {
                userQuestionData.LastQuestionSubmission = null;
            }

            userQuestionData.Seed = result.Seed;
            userQuestionData.CachedQuestionData     = result.SerializedQuestion;
            userQuestionData.CachedQuestionDataTime = generationTime;
        }