Esempio n. 1
0
        public async Task <IActionResult> Post([FromForm] Quiz_DTO quiz_DTO)
        {
            var confirmedModel = new Quiz(); //te returnen DTO

            try
            {
                var obj = new Difficulty_DTO();
                quiz_DTO.Difficulty = QuizMapper.ConvertDifficultyTo_DTO(await quizRepo.GetDifficultyForIdAsync(quiz_DTO.DifficultyId), ref obj);
                //1. Validatie
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                //2.Entity (model) via de mapper ophalen
                var model = new Quiz()
                {
                };
                QuizMapper.ConvertQuizTo_Entity(quiz_DTO, ref model);
                //3. Entity (model) toevoegen via het repo
                confirmedModel = await quizRepo.AddQuiz(model);

                //4. Een bevestiging v foutieve actie teruggeven
                if (confirmedModel == null)
                {
                    return(NotFound(model.Subject + " did not get saved. "));
                }
            }
            catch (Exception exc)
            {
                return(BadRequest("Add quiz failed"));
            }
            //5. DTO terugsturen als bevestiging
            return(CreatedAtAction("Get", new { id = confirmedModel.Id }, quiz_DTO));
        }
Esempio n. 2
0
        public ActionResult SelectedQuiz(int id)
        {
            Quiz quiz = _quizModel.QuizzesContainer.Quizzes[id];

            ViewBag.Message = quiz.Name;
            Session.Add("Quiz", quiz);
            var quizViewModel = QuizMapper.Map(quiz);

            return(View(quizViewModel));
        }
        public async Task <apiModels.Quiz> GetQuizById(int id)
        {
            var quiz = await _dbContext.Quiz.Include(i => i.Question).ThenInclude(ti => ti.Answer).FirstOrDefaultAsync(w => w.Id == id);

            if (quiz == null)
            {
                throw new InvalidOperationException($"No Quiz Exits with Id {id}");
            }

            return(QuizMapper.ToApiModel(quiz));
        }
Esempio n. 4
0
        public IEnumerable <QuizDTO> GetAllQuizesFromOneUser(string emailUser)
        {
            var quizen     = _teamQuizRondeUnitOfWork.QuizRepository.GetWhere(x => x.EmailCreator == emailUser);
            var quizenDTOs = new List <QuizDTO>();

            foreach (Quiz quiz in quizen)
            {
                quizenDTOs.Add(QuizMapper.MapQuizModelToQuizDTO(quiz));
            }

            return(quizenDTOs);
        }
Esempio n. 5
0
        public IEnumerable <QuizDTO> GetAllQuizen()
        {
            var quizen     = _teamQuizRondeUnitOfWork.QuizRepository.GetAll();
            var quizenDTOs = new List <QuizDTO>();

            foreach (Quiz quiz in quizen)
            {
                quizenDTOs.Add(QuizMapper.MapQuizModelToQuizDTO(quiz));
            }

            return(quizenDTOs);
        }
        public async Task <IEnumerable <apiModels.QuizResponse> > GetQuizResponseByQuizId(int quizId)
        {
            var res = (from response in _dbContext.QuizResponse
                       join quiz in _dbContext.Quiz on response.QuizId equals quiz.Id
                       join question in _dbContext.Question on response.QuestionId equals question.Id
                       join answer in _dbContext.Answer on response.AnswerId equals answer.Id
                       where response.QuizId == quizId
                       select new { Quiz = quiz, Question = question, GivenAnswer = answer }).ToList();

            return(res.Select(item => new apiModels.QuizResponse {
                Quiz = QuizMapper.ToApiModel(item.Quiz), Question = QuizMapper.ToApiModel(item.Question), GivenAnswer = QuizMapper.ToApiModel(item.GivenAnswer), AnswerPoint = item.Question.CorrectAnswerId.GetValueOrDefault(0) == item.GivenAnswer.Id ? 1 : 0
            }).ToList());
        }
Esempio n. 7
0
        public async Task <ActionResult <List <Difficulty_DTO> > > Get()
        {
            var model = await quizRepo.GetAllDifficultiesAsync();

            List <Difficulty_DTO> model_DTO = new List <Difficulty_DTO>();

            foreach (Difficulty difficulty in model)
            {
                var result = new Difficulty_DTO();
                model_DTO.Add(QuizMapper.ConvertDifficultyTo_DTO(difficulty, ref result));
            }
            return(Ok(model_DTO));
        }
Esempio n. 8
0
        public async Task <ActionResult <Quiz_DTO> > Get(Guid id)
        {
            var result = await quizRepo.GetQuizForIdAsync(id);

            if (result == null)
            {
                return(BadRequest("Quiz not found"));
            }
            var obj   = new Quiz_DTO();
            var model = QuizMapper.ConvertQuizTo_DTO(result, ref obj, quizRepo);

            return(Ok(model));
        }
Esempio n. 9
0
        public async Task <ActionResult <List <Quiz_DTO> > > Get()
        {
            var model = await quizRepo.GetAllQuizzesAsync();

            List <Quiz_DTO> model_DTO = new List <Quiz_DTO>();

            foreach (Quiz quiz in model)
            {
                var result = new Quiz_DTO();
                model_DTO.Add(QuizMapper.ConvertQuizTo_DTO(quiz, ref result, quizRepo));
            }
            return(Ok(model_DTO));
        }
Esempio n. 10
0
        public Response <QuizDTO> AddQuiz(QuizDTO quizDTO)
        {
            try
            {
                QuizValidator    validator = new QuizValidator();
                ValidationResult results   = validator.Validate(quizDTO);

                if (results.IsValid)
                {
                    var quiz       = QuizMapper.MapQuizDTOToQuizModel(quizDTO);
                    var quizEntity = _teamQuizRondeUnitOfWork.QuizRepository.Add(quiz);
                    _teamQuizRondeUnitOfWork.Commmit();
                    var quizEntityDTO = QuizMapper.MapQuizModelToQuizDTO(quizEntity);
                    var response      = new Response <QuizDTO>
                    {
                        DTO = quizEntityDTO
                    };
                    return(response);
                }
                else
                {
                    return(new Response <QuizDTO>()
                    {
                        Errors = results.Errors.Select(x => new Error()
                        {
                            Type = ErrorType.ValidationError, Message = x.ErrorMessage
                        }).ToList()
                    });
                }
            }
            catch (Exception ex)
            {
                return(new Response <QuizDTO>()
                {
                    Errors = new List <Error>()
                    {
                        new Error()
                        {
                            Type = ErrorType.Exception, Message = ex.Message
                        }
                    }
                });
            }
        }
Esempio n. 11
0
        public void GetAllQuizsCorrect()
        {
            var quizs = new List <Quiz>();

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

            IQueryable <Quiz> queryableQuizs = quizs.AsQueryable();

            var quizsDTO = new List <QuizDTO>();

            foreach (var quiz in quizs)
            {
                quizsDTO.Add(QuizMapper.MapQuizModelToQuizDTO(quiz));
            }

            //Arange
            var unitOfWork = new Mock <ITeamQuizRondeUnitOfWork>();

            unitOfWork.Setup(x => x.QuizRepository.GetAll()).Returns(queryableQuizs);

            var quizService = new QuizService(unitOfWork.Object);

            //Act
            var allQuizs = quizService.GetAllQuizen();

            //Assert
            Assert.That(allQuizs.Count(), Is.EqualTo(quizsDTO.Count()));

            for (int i = 0; i < allQuizs.Count(); i++)
            {
                Assert.That(allQuizs.ToArray()[i].Id, Is.EqualTo(quizsDTO.ToArray()[i].Id));
                Assert.That(allQuizs.ToArray()[i].Naam, Is.EqualTo(quizsDTO.ToArray()[i].Naam));
            }
        }
Esempio n. 12
0
        public async Task <IActionResult> GetAllQuizzesAsync()
        {
            var returnMessage = "";

            try
            {
                Quiz_DTO quiz_DTO = new Quiz_DTO();
                var      quizzes  = await _quizRepository.GetAllQuizzesAsync();

                List <Quiz_DTO> quiz_DTOs = new List <Quiz_DTO>();
                foreach (var obj in quizzes)
                {
                    quiz_DTO = QuizMapper.ConvertTo_DTO(obj, ref quiz_DTO);
                    quiz_DTOs.Add(quiz_DTO);
                }
                return(Ok(quiz_DTOs));
            }
            catch (Exception ex)
            {
                returnMessage = $"Foutief of ongeldig request: {ex.Message}"; ModelState.AddModelError("", returnMessage);
            }
            return(BadRequest(returnMessage));
        }
Esempio n. 13
0
        public Response <QuizDTO> FindQuiz(int id)
        {
            try
            {
                if (id <= 0)
                {
                    return(new Response <QuizDTO>()
                    {
                        Errors = new List <Error>()
                        {
                            new Error {
                                Type = ErrorType.ValidationError, Message = "De id mag niet 0 zijn"
                            }
                        }
                    });
                }
                var quiz       = _teamQuizRondeUnitOfWork.QuizRepository.GetById(id);
                var quizReturn = QuizMapper.MapQuizModelToQuizDTO(quiz);

                return(new Response <QuizDTO>()
                {
                    DTO = quizReturn
                });
            }
            catch (Exception ex)
            {
                return(new Response <QuizDTO>()
                {
                    Errors = new List <Error>()
                    {
                        new Error {
                            Type = ErrorType.Exception, Message = ex.Message
                        }
                    }
                });
            }
        }