// GET: New Test
        public async Task <IActionResult> NewTest()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }
            var language = await _context.Languages.SingleOrDefaultAsync(p => p.LanguageCode == "zh_CN");

            var vm = new NewTestViewModel
            {
                Test = new VocabularyAnalyser.Model.MyVocabularyTest
                {
                    UserName      = user.UserName,
                    TestWordCount = 25,
                    TestTime      = DateTime.UtcNow,
                    Language      = language,
                    LanguageId    = language.LanguageId
                }
            };

            vm.Test.VocabularyTestDetails = await GenerateTestDetailsAsync(vm.Test, new List <(int, int, int)> {
                (0, 3000, 15), (3001, 5000, 5), (5001, 10000, 5)
            });
示例#2
0
        public RedirectToRouteResult New(NewTestViewModel newTestViewModel)
        {
            //Validate viewModel

            //End test
            var finishedTestInfo = this.helperFactory.CreateFinishedTest(newTestViewModel.TestId);

            foreach (var question in newTestViewModel.Questions)
            {
                finishedTestInfo.AnsweredQuestions.Add(this.helperFactory.CreateAnsweredQuestion(question.QuestionId, question.SelectedAnswerId));
            }

            var test = this.testService.EndTest(finishedTestInfo);

            var testViewModel = this.viewModelFactory.CreateTestViewModel(test.Id);

            return(this.RedirectToAction("Test", testViewModel));
        }