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)); } } }
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)); }