Example #1
0
 public FindQuestionsDto(int?idQuestion, string intitule, string category, string level, FindAnswerDto answer)
 {
     IdQuestion = idQuestion;
     Intitule   = intitule;
     Category   = category;
     Level      = level;
     Answer     = answer;
 }
 public FindQuizzQuestionsDto(int?idQuestion, string intitule, string category, string level,
                              FindAnswerDto answer, string candidateAnswer, bool?iscorrectAnswer)
 {
     IdQuestion      = idQuestion;
     Intitule        = intitule;
     Category        = category;
     Level           = level;
     Answer          = answer;
     CandidateAnswer = candidateAnswer;
     IsCorrectAnswer = iscorrectAnswer;
 }
        /*
         * /// <summary>
         * /// Permet d'update une question
         * /// </summary>
         * /// <param name="id"></param>
         * /// <param name="obj"></param>
         * /// <returns>une question modifié (DTO) </returns>
         * internal FindQuestionsDto PutQuestion(int id, CreatedQuestionDTO obj)
         * {
         *  Question questionModels = transformsDtoToModel(obj);
         *  Question questionUpdate = questionsRepository.Update(id, questionModels);
         *  return TransformsModelToDTO(questionUpdate);
         * }
         */

        /// <summary>
        /// Générer une question dans la bdd
        /// </summary>
        /// <param name="obj"></param>
        /// <returns>la question créée</returns>
        internal FindQuestionsDto PostQuestion(CreatedQuestionDTO obj)
        {
            // Création de la réponse

            FindAnswerDto answer = this.AnswerServices.PostAnswer(obj.Answer);

            // Création de la question
            Question questionModel   = transformsDtoToModel(obj, (int)answer.IdAnswer);
            Question questioncreated = questionsRepository.Create(questionModel);

            return(TransformsModelToDTO(questioncreated, answer));
        }
        /// <summary>
        ///     Trasnforme une question en FindQuizzQuestionsDto
        /// </summary>
        /// <param name="question">question à transformer</param>
        /// <param name="idAnswerCandidate">id de la réponse du candidat</param>
        /// <returns>FindQuizzQuestionsDto</returns>
        private FindQuizzQuestionsDto TransformsModelToDTOQuestion(Question question, string answerCandidate, bool?isCorrectAnswer)
        {
            CategoryRepository catRepo = new CategoryRepository(new QueryBuilder());
            FindAnswerDto      answer  = AnswersServices.GetAnswerById((int)question.IdAnswer);

            return(new FindQuizzQuestionsDto(
                       question.IdQuestion,
                       question.Intitule,
                       catRepo.Find((int)question.IdCategory).NameCategory,
                       TransformeIdLevelToString((int)question.IdLevel),
                       answer,
                       answerCandidate,
                       isCorrectAnswer
                       ));
        }
        /// <summary>
        /// Converti un Model en DTO
        /// </summary>
        /// <param name="question"></param>
        /// <returns>Une question en DTO</returns>
        private FindQuestionsDto TransformsModelToDTO(Question question, FindAnswerDto answer = null)
        {
            LevelRepository    lvlRepo = new LevelRepository(new QueryBuilder());
            CategoryRepository catRepo = new CategoryRepository(new QueryBuilder());

            // Si answer est inconnu alors aller le récupérer à l'aide de service answer et rappel la méthode
            if (answer == null)
            {
                return(TransformsModelToDTO(question, AnswerServices.GetAnswerById((int)question.IdAnswer)));
            }
            return(new FindQuestionsDto(
                       question.IdQuestion,
                       question.Intitule,
                       catRepo.Find((int)question.IdCategory).NameCategory,
                       lvlRepo.Find((int)question.IdLevel).NameLevel,
                       answer
                       ));
        }