public async Task <IActionResult> Add(QuizForAddDto quizForAddDto)
        {
            try
            {
                var user = await _userManager.GetUserAsync(User);

                var quiz = _mapper.Map <Quiz>(quizForAddDto);

                quiz.UserId = user.Id;

                // quiz.QAndAs.Add(quizForAddDto.QuesAndAns);

                _quizRepo.Add(quiz);

                if (await _quizRepo.SaveAll())
                {
                    foreach (var qa in quizForAddDto.QuesAndAns)
                    {
                        qa.QuizId = quiz.Id;
                        _quizRepo.Add(qa);
                    }

                    await _quizRepo.SaveAll();

                    return(Ok("Successfully created the quiz"));
                }

                return(BadRequest("Creating the quiz failed on save"));
            }
            catch (Exception e)
            {
                return(BadRequest("Creating the quiz failed"));
            }
        }
Exemple #2
0
 public int Create(Quiz quiz)
 {
     if (this.GetQuizByName(quiz.Name) == null)
     {
         quizRepository.Add(quiz);
         return(1);
     }
     return(0);
 }
        public QuizQuery Add(AddQuizCommand command)
        {
            if (string.IsNullOrEmpty(command.Titulo))
            {
                throw new Exception("Titulo do quiz é obrigatório");
            }

            if (string.IsNullOrEmpty(command.Nivel.ToString()))
            {
                throw new Exception("Nível do quiz é obrigatório");
            }

            if ((command.Perguntas == null) || (command.Perguntas.Count == 0))
            {
                throw new Exception("O quiz deve conter pelo menos uma pergunta");
            }

            if (command.Perguntas.Where(p => p.Alternativas?.Count != 4).Any())
            {
                throw new Exception("As perguntas do quiz devem conter 4 alternativas");
            }

            var quiz = _quizRepository.Add(new EnqQuiz
            {
                Titulo      = command.Titulo,
                CodigoNivel = (int)command.Nivel,
                ImagemUrl   = command.ImagemUrl
            });

            var query = QuizToQuery(quiz);

            query.Perguntas = AddPerguntas(quiz.Codigo, command.Perguntas);

            return(query);
        }
Exemple #4
0
    public async Task <ObjectResult <QuizResponse> > Create(QuizCreateRequest request)
    {
        var quiz = _mapper.Map <Quiz>(request);

        if (quiz != null)
        {
            quiz.DateAdded = DateTime.Now;
            _quizRepository.Add(quiz);
        }

        quiz.Image = await _imageRepository.GetImageByUrl(request.ImageUrl);

        if (await _quizRepository.SaveChangesAsync())
        {
            _cache.Set($"Quiz {quiz.Id}", quiz);
            _cache.Remove($"Quizzes");

            return(new ObjectResult <QuizResponse> {
                Object = _mapper.Map <QuizResponse>(quiz), Found = true, Success = true
            });
        }
        return(new ObjectResult <QuizResponse> {
            Found = true, Errors = new[] { "Action didn't affect any rows" }
        });
    }
Exemple #5
0
        public Quiz CreateNewQuiz(Song song, string answer1, string answer2, string rightAnswer)
        {
            var quiz = Quiz.Create(song, answer1, answer2, rightAnswer);

            quiz = quizRepository.Add(quiz);
            persistanceContext.SaveChanges();

            return(quiz);
        }
        public async Task <IActionResult> Create([FromBody] QuizDef Quiz)
        {
            if (Quiz == null)
            {
                return(BadRequest());
            }
            await _quizRepo.Add(Quiz);

            return(CreatedAtRoute("GetQuiz", new { Controller = "Quizes", id = Quiz.QuizId }, Quiz));
        }
        public CreatedQuizDto AddQuiz(CreateQuizDto createQuizDto)
        {
            var quiz = _repository.Add(new Quiz {
                Date = createQuizDto.Date, QuizName = createQuizDto.Name, QuizOwnerId = createQuizDto.QuizOwnerId
            }).First();

            _repository.Save();
            return(new CreatedQuizDto {
                Id = quiz.Id, Name = quiz.QuizName, Date = quiz.Date
            });
        }
        public void AddNewQuiz(QuizDTO quizDTO)
        {
            var quiz = CreateQuiz(quizDTO);

            //var kolekcja pytan json lub xml = json save = / quiz.jsonFile pewnie bd trzeba cos dodac do tego jsona.
            quizRepository.Add(quiz);
            quizDTO.Id       = quiz.Id;
            quizDTO.FilePath = this.jsonRepository.BuildAbsolutePath(quizDTO.Id);
            this.jsonRepository.SaveWithAbsolutePath(quizDTO.FilePath, quizDTO.JSON);
            this.Update(quizDTO);
        }
Exemple #9
0
        public async Task <IActionResult> Create([Bind("QuizId,Title")] Quiz quiz)
        {
            if (ModelState.IsValid)
            {
                _quizRepository.Add(quiz);

                await _quizRepository.Save();

                TempData["info"] = "The quiz title has been saved";

                return(RedirectToAction(nameof(Create), "Questions", new { id = quiz.QuizId }));
            }

            return(View(quiz));
        }
        public async Task <Result <QuizResultResponse> > FinishQuiz(FinishQuizCommand command)
        {
            var validationResult = Validate(_finishQuizCommandValidator.Validate(command));

            if (!validationResult.Success)
            {
                return(validationResult);
            }

            var quizResult = await CalculateResult(command);

            var quiz = new Quiz(command.UserName, quizResult);
            await _quizRepository.Add(quiz);

            return(new Result <QuizResultResponse>(QuizResultResponse.ToResponse(quiz)));
        }
Exemple #11
0
        public Quiz Create(Guid creatorId, string creatorRole, List <QuizQuestion> questions)
        {
            string link = generateLink();

            foreach (var question in questions)
            {
                question.Id = Guid.NewGuid();
            }

            Quiz newQuiz = new Quiz
            {
                Id          = Guid.NewGuid(),
                UserId      = creatorId,
                CreatorRole = creatorRole,
                status      = "unplayed",
                Questions   = questions,
                Link        = link
            };

            return(_quizRepository.Add(newQuiz));
        }
Exemple #12
0
        public IActionResult Add()
        {
            int    id     = int.Parse(Request.Form["id"]);
            string title  = Request.Form["Title"];
            string number = Request.Form["Questions"];

            string[] sep  = number.Split(";");
            int[]    nums = new int[sep.Length];
            for (int i = 0; i < sep.Length; i++)
            {
                nums[i] = int.Parse(sep[i]);
            }

            Quiz quiz = new Quiz()
            {
                number = sep.Length, QuizId = id, Title = title
            };
            List <QuestionQuiz> questQuiz = new List <QuestionQuiz>();

            foreach (QuestionQuiz q in context.Journalists)
            {
                foreach (int idd in nums)
                {
                    if (q.QuestionsId == idd && q.QuizId == id)
                    {
                        context.Journalists.Remove(q);
                    }
                }
            }
            foreach (int n in nums)
            {
                questQuiz.Add(new QuestionQuiz {
                    QuestionsId = n, QuizId = id, QuestionQuizId = n + 100
                });
            }
            context.Journalists.AddRange(questQuiz);
            r.Add(quiz);
            r.Save();
            return(View());
        }
Exemple #13
0
        public Quize CreateQuiz(Quest quest, IEnumerable <QuizNewQuestion> questions)
        {
            quest.Points = questions.Count();
            var quiz = new Quize()
            {
                Quest         = quest,
                QuizQuestions = questions.Select(q =>
                                                 new QuizQuestion()
                {
                    CorrectAnswer = q.Answer,
                    AnswerB       = q.OptionB,
                    AnswerC       = q.OptionC,
                    AnswerD       = q.OptionD,
                    Question      = q.Question
                }).ToList()
            };

            quizRepository.Add(quiz);
            quizRepository.SaveChanges();

            return(quiz);
        }
Exemple #14
0
 public void Add(Quiz quiz)
 {
     QuizRepository.Add(quiz);
 }
 public ActionResult <EnqQuiz> Adicionar([FromBody] EnqQuiz command)
 {
     return(Created("quizzes", _quizRepository.Add(command)));
 }
        public async Task <ActionResult> AddQuestionToQuiz(Quiz quiz, ICollection <Question> questions, IFormCollection collection, List <IFormFile> questionImage, List <string> imageav)
        {
            try
            {
                int imageCounter = 0;
                int i            = 0;
                var uploadPath   = Path.Combine(he.WebRootPath, "images");
                await quizRepository.Add(quiz);

                foreach (var question in questions)
                {
                    await questionRepository.Add(question);

                    Guid QuestionGuid = Guid.NewGuid();
                    if (Int16.Parse(imageav[i]) == 1)
                    {
                        if (questionImage[imageCounter].Length > 0)
                        {
                            var filePath = Path.Combine(uploadPath, question.QuestionID + ".jpg");
                            using (var fileStream = new FileStream(filePath, FileMode.Create))
                            {
                                await questionImage[imageCounter].CopyToAsync(fileStream);
                            }
                        }
                        imageCounter++;
                    }
                    i++;
                }
                ICollection <Quiz> quizzes = await quizRepository.GetQuizzesAsync();

                var Quizzes = await quizRepository.GetQuizzesAsync();

                var user = await userManager.FindByNameAsync(User.Identity.Name);

                var participated = await userScoreRepo.GetUserQuizzesAsync(user.Id);

                List <Guid> pp = new List <Guid>();

                foreach (var quizTaken in participated)
                {
                    pp.Add(quizTaken.QuizId);
                }
                List <QuizOverview_VM> quizOverview = new List <QuizOverview_VM>();
                foreach (var quizs in Quizzes)
                {
                    QuizOverview_VM quizOverview_VM = new QuizOverview_VM()
                    {
                        QuizId       = quizs.Id,
                        Description  = quizs.Description,
                        Name         = quizs.Name,
                        QuizzedTaken = pp.Contains(quizs.Id),
                        Difficulty   = quiz.Difficulty.ToString()
                    };
                    quizOverview.Add(quizOverview_VM);
                }
                return(View("MyQuiz", quizOverview));
            }
            catch (Exception exc)
            {
                var Quizzes = await quizRepository.GetQuizzesAsync();

                var user = await userManager.FindByNameAsync(User.Identity.Name);

                var participated = await userScoreRepo.GetUserQuizzesAsync(user.Id);

                List <Guid> pp = new List <Guid>();

                foreach (var quizTaken in participated)
                {
                    pp.Add(quizTaken.QuizId);
                }
                List <QuizOverview_VM> quizOverview = new List <QuizOverview_VM>();
                foreach (var quizs in Quizzes)
                {
                    QuizOverview_VM quizOverview_VM = new QuizOverview_VM()
                    {
                        QuizId       = quizs.Id,
                        Description  = quizs.Description,
                        Name         = quizs.Name,
                        QuizzedTaken = pp.Contains(quizs.Id)
                    };
                    quizOverview.Add(quizOverview_VM);
                }
                return(View("MyQuiz", quizOverview));
            }
        }