public IActionResult GetById(int id)
 {
     try
     {
         var response = _service.FindQuiz(id);
         if (response.DidError)
         {
             return(BadRequest(response.Errors));
         }
         var quizReturn = QuizViewModelMapper.MapQuizDTOToQuizViewModel(response.DTO);
         return(Ok(quizReturn));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
        public IActionResult GetAllQuizesForOneUser(string email)
        {
            var quizesDTOs = _service.GetAllQuizesFromOneUser(email);

            if (quizesDTOs == null)
            {
                return(null);
            }

            var quizesModels = new List <QuizViewModelResponse>();

            foreach (var quiz in quizesDTOs)
            {
                quizesModels.Add(QuizViewModelMapper.MapQuizDTOToQuizViewModel(quiz));
            }

            return(Ok(quizesModels));
        }
        public IActionResult Create(QuizViewModelRequest quizViewModel)
        {
            try
            {
                var createDTO = QuizViewModelMapper.MapQuizViewModelRequestToQuizDTO(quizViewModel);
                var response  = _service.AddQuiz(createDTO);
                if (response.DidError)
                {
                    return(BadRequest(response.Errors));
                }


                var createdQuiz = QuizViewModelMapper.MapQuizDTOToQuizViewModel(response.DTO);

                return(Created("/api/quiz/GetById/" + createdQuiz.Id, createdQuiz));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public IActionResult GetAll()
        {
            try
            {
                var quizesDTOs = _service.GetAllQuizen();

                if (quizesDTOs == null)
                {
                    return(null);
                }

                var quizesModels = new List <QuizViewModelResponse>();

                foreach (var quiz in quizesDTOs)
                {
                    quizesModels.Add(QuizViewModelMapper.MapQuizDTOToQuizViewModel(quiz));
                }

                return(Ok(quizesModels));
            }
            catch (Exception ex) {
                return(BadRequest(ex.ToString()));
            }
        }
        public IActionResult Update(QuizViewModelResponse quizViewModel)
        {
            try
            {
                var quizDTO = QuizViewModelMapper.MapQuizViewModelToQuizDTO(quizViewModel);
                var quiz    = _service.Update(quizDTO);
                if (quiz == null)
                {
                    return(BadRequest("Error updating quiz"));
                }

                if (quiz.DidError)
                {
                    return(BadRequest(quiz.Errors));
                }

                var quizReturn = QuizViewModelMapper.MapQuizDTOToQuizViewModel(quiz.DTO);
                return(Created("/api/quiz/GetById/" + quizReturn.Id, quizReturn));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public void GetAllQuizenCorrect()
        {
            var quizDTOs = new List <QuizDTO>();

            quizDTOs.Add(new QuizDTO
            {
                Id   = 1,
                Naam = "Quiz 1"
            });

            IQueryable <QuizDTO> queryableQuizDTOs = quizDTOs.AsQueryable();

            var quizModels = new List <QuizViewModelResponse>();

            foreach (var quiz in quizDTOs)
            {
                quizModels.Add(QuizViewModelMapper.MapQuizDTOToQuizViewModel(quiz));
            }

            //Arange
            quizService.Setup(x => x.GetAllQuizen()).Returns(queryableQuizDTOs);

            //Act
            var alleQuizen = controller.GetAll() as ObjectResult;
            var ListQuizen = alleQuizen.Value as List <QuizViewModelResponse>;


            //Assert
            Assert.That(ListQuizen.Count(), Is.EqualTo(quizModels.Count()));

            for (int i = 0; i < ListQuizen.Count(); i++)
            {
                Assert.That(ListQuizen.ToArray()[i].Id, Is.EqualTo(quizModels.ToArray()[i].Id));
                Assert.That(ListQuizen.ToArray()[i].Naam, Is.EqualTo(quizModels.ToArray()[i].Naam));
            }
        }