public async Task <IActionResult> Add(QuizDTO quiz)
        {
            var entity = Mapper.Map(quiz);
            await _quizRepository.AddQuizAsync(quiz.ParentId, entity);

            await _unitOfWork.CompleteAsync();

            return(Accepted());
        }
Exemplo n.º 2
0
        public async Task <ActionResult> AddQuestionToQuiz(IList <Question> questions, List <IFormFile> questionimg, List <string> listimgindex, string quizname, string quizdiff, string quizdescript)
        {
            try
            {
                var  userId     = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
                var  uploadPath = Path.Combine(_he.WebRootPath, "images");
                int  imgCounter = 0;
                int  isaindex   = 0;
                Quiz quiz       = new Quiz()
                {
                    Name = quizname, Description = quizdescript, Difficulty = (Quiz.Difficulties)Enum.Parse(typeof(Quiz.Difficulties), quizdiff), QuestionCount = questions.Count(), ApplicationUserId = userId
                };
                await _quizRepository.AddQuizAsync(quiz);

                foreach (var question in questions)
                {
                    question.Quiz = quiz;
                    await _questionRepository.AddQuestionAsync(question);

                    if (Int16.Parse(listimgindex[isaindex]) == 1)
                    {
                        if (questionimg[imgCounter].Length > 0)
                        {
                            var filePath = Path.Combine(uploadPath, question.Id + ".jpg");
                            using (var fileStream = new FileStream(filePath, FileMode.Create))
                            {
                                await questionimg[imgCounter].CopyToAsync(fileStream);
                            }
                        }
                        imgCounter++;
                    }
                    isaindex++;
                }
                var result = await _quizRepository.GetAllQuizzesAsync();

                return(View("Quizzes", result));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.InnerException.Message);
                return(View("MyQuizzes"));
            }
        }