示例#1
0
        private double CalculateScore(List <AnswerDbo> answersDbo, TestDbo testDbo)
        {
            var rightAnswersCount = answersDbo.Count(a =>
                                                     AnswersHelper.CheckAnswer(a.UserAnswer, a.RightAnswer));

            return((double)rightAnswersCount / testDbo.Questions.Count);
        }
示例#2
0
        public async Task <Guid> SaveAnswersAsync(List <AnswerDbo> answersDbo, TestDbo test, UserDbo user)
        {
            await SetRightAnswers(answersDbo);

            var score  = CalculateScore(answersDbo, test);
            var result = await SaveResult(test, user, score);

            await SaveAnswersWithResult(answersDbo, result);

            return(result.Id);
        }
        public async Task <ActionResult> AddAsync()
        {
            var user = await GetUser();

            var test = new TestDbo {
                Owner = user
            };

            ModelsContext.Add(test);
            await ModelsContext.SaveChangesAsync();

            return(Ok(test.Id));
        }
示例#4
0
        private async Task <ResultDbo> SaveResult(TestDbo test, UserDbo user, double score)
        {
            var result = new ResultDbo
            {
                User     = user,
                DateTime = DateTime.Now,
                Test     = test,
                Score    = score
            };

            _context.Add(result);
            await _context.SaveChangesAsync();

            return(result);
        }