public async Task <object> PostSubmission(string dictaatName, int assignmentId, [FromBody] AssignmentSubmissionFormVM form)
        {
            string userId = _userManager.GetUserId(HttpContext.User);
            var    user   = await _userManager.FindByIdAsync(userId);

            if (form.Token != null)
            {
                //use the user identy name (email)
                return(_assignmentRepo.CompleteAssignment(assignmentId, user.Email, form.Token, userId));
            }
            else
            {
                var isContributer = await _authorizeService.IsDictaatContributer(userId, dictaatName);

                if (isContributer)
                {
                    //if you are a contributer, you can choose who has completed the assignment (form data)
                    return(_assignmentRepo.CompleteAssignment(assignmentId, form.UserId, isContributer));
                }
                else
                {
                    return(_assignmentRepo.CompleteAssignment(assignmentId, userId, isContributer));
                }
            }
        }
Exemplo n.º 2
0
        public QuizVM AddAttempt(int quizId, string userId, IEnumerable <QuestionAttemptVM> attempt)
        {
            var quiz = _context.Quizes.FirstOrDefault(q => q.Id == quizId);

            QuizAttempt qa = new QuizAttempt()
            {
                QuizId            = quizId,
                UserId            = userId,
                Timestamp         = DateTime.Now,
                QuestionsAnswered = attempt.ToList().Select(a => a.ToPoco()).ToList()
            };

            //if all questions are correct, complete assignment if available
            if (!qa.QuestionsAnswered.Any(q => !q.IsCorrect) && quiz.AssignmentId.HasValue)
            {
                _assignmentRepo.CompleteAssignment(quiz.AssignmentId.Value, userId, true);
            }

            _context.QuizAttempts.Add(qa);
            _context.SaveChanges();

            return(this.GetQuiz(quizId, userId));
        }