public static Quize ToQuize(this QuizApiModel quizApiModel) { return(new Quize() { Name = quizApiModel.Name, Description = quizApiModel.Description, Duration = quizApiModel.Duration, PassingPercentage = quizApiModel.PassingPercentage, CreatedDate = quizApiModel.CreatedDate, IsActive = quizApiModel.IsActive }); }
public ApiResponse <QuizApiModel> CreateQuiz(QuizApiModel quizApiModel) { var response = new ApiResponse <QuizApiModel>(); var quiz = quizApiModel.ToQuize(); quiz.CreatedDate = DateTime.Now; _context.Quizes.Add(quiz); int rowAffected = _context.SaveChanges(); response.IsSucceeded = rowAffected > 0; quizApiModel.Id = quiz.Id; response.Result = quizApiModel; return(response); }
public ApiResponse <QuizApiModel> UpdateQuiz(QuizApiModel quizApiModel) { var response = new ApiResponse <QuizApiModel>(); var quiz = _context.Quizes.FirstOrDefault(x => x.Id == quizApiModel.Id); quiz.Description = quizApiModel.Description; quiz.Duration = quizApiModel.Duration; quiz.PassingPercentage = quizApiModel.PassingPercentage; _context.Entry(quiz).State = EntityState.Modified; int rowAffected = _context.SaveChanges(); response.IsSucceeded = rowAffected > 0; response.Result = quizApiModel; return(response); }
public Task SubmitQuiz(int participantId, QuizApiModel quizApiModel) { using (DbContextTransaction dbTran = _context.Database.BeginTransaction()) { try { var QuizAttemptModel = new QuizAttemptDetail { AttemptDate = DateTime.Now, QuizId = quizApiModel.Id, ParticipantId = participantId }; _context.QuizAttemptDetails.Add(QuizAttemptModel); _context.SaveChanges(); var quizResultModel = quizApiModel.Questions?.Select(x => new QuizResult { AttemptId = QuizAttemptModel.Id, QuestionId = x.Id, SelectedAnswer = x.Options.Where(o => o.IsSelected).Count() > 0? x.Options.Where(o => o.IsSelected).Select(s => s.Id.ToString())?.Aggregate((a, b) => $"{a},{b}"):null, ActualAnswer = x.Options.Where(o => o.IsAnswer)?.Select(s => s.Id.ToString())?.Aggregate((a, b) => $"{a},{b}"), }); _context.QuizResults.AddRange(quizResultModel); _context.SaveChanges(); dbTran.Commit(); } catch (DbEntityValidationException ex) { dbTran.Rollback(); throw; } } return(Task.FromResult(0)); }
public IHttpActionResult SubmitQuiz(int userId, [FromBody] QuizApiModel Quiz) { var response = _quizQueryServices.SubmitQuiz(userId, Quiz); return(Ok(response)); }
public IHttpActionResult UpdateQuiz([FromBody] QuizApiModel Quiz) { var response = _quizQueryServices.UpdateQuiz(Quiz); return(Ok(response)); }