Пример #1
0
 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
     });
 }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        public IHttpActionResult SubmitQuiz(int userId, [FromBody] QuizApiModel Quiz)
        {
            var response = _quizQueryServices.SubmitQuiz(userId, Quiz);

            return(Ok(response));
        }
Пример #6
0
        public IHttpActionResult UpdateQuiz([FromBody] QuizApiModel Quiz)
        {
            var response = _quizQueryServices.UpdateQuiz(Quiz);

            return(Ok(response));
        }