/// <summary>
        ///     Récupérations des questions composant le quizz
        /// </summary>
        /// <param name="questionsQuizz">liste de QuizzQuestion</param>
        /// <returns>List<FindQuizzQuestionsDto></returns>
        private List <FindQuizzQuestionsDto> ReturnQuestionsQuizz(List <QuizzQuestion> questionsQuizz)
        {
            QuestionsRepository          questionRepo  = new QuestionsRepository(new QueryBuilder());
            List <FindQuizzQuestionsDto> questionsDtos = new List <FindQuizzQuestionsDto>();

            foreach (QuizzQuestion quizzQ in questionsQuizz)
            {
                Question question = questionRepo.Find((int)quizzQ.IdQuestion);
                questionsDtos.Add(TransformsModelToDTOQuestion(question, quizzQ.AnswerCandidate, quizzQ.IsCorrectAnswer));
            }
            return(questionsDtos);
        }
        /// <summary>
        /// Récupère une question précise selon son id
        /// </summary>
        /// <param name="id"></param>
        /// <returns>une question </returns>
        internal FindQuestionsDto GetQuestions(int id)
        {
            Question question = questionsRepository.Find(id);

            if (question.IdQuestion == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            FindQuestionsDto questionDto = TransformsModelToDTO(question);

            return(questionDto);
        }
        public IEnumerable <QuestionDto> GetPublishedQuestions()
        {
            IEnumerable <QuestionDto> results = null;

            try
            {
                QuestionsRepository repository = new QuestionsRepository(_appDbContext);
                var questions    = repository.Find(p => p.CreatedBy == _clientData.Id);
                var questionDtos = _mapper.Map <IEnumerable <Question>, IEnumerable <QuestionDto> >(questions);
                results = repository.IncludeSkills(questionDtos);
            }
            catch (Exception e)
            {
                _log.LogError(e, "Error getting published questions");
            }
            return(results);
        }
        public CandidateDashboardData GetCandidateDashboardData()
        {
            var candidateDashbaordData = new CandidateDashboardData();

            try
            {
                var questionsRepository          = new QuestionsRepository(_appDbContext);
                var candidateQuestionsRepository = new CandidateQuestionsRepository(_appDbContext);

                candidateDashbaordData.NumOfQuestions     = questionsRepository.GetPublicQuestionsCount();
                candidateDashbaordData.TodoListQuestions  = Mapper.Map <IEnumerable <QuestionDto> >(candidateQuestionsRepository.Get(false, _clientData.ChildId).Select(cq => cq.Question).Take(Consts.DASHBOARD_DATA_TODO_LIST_COUNT));
                candidateDashbaordData.PublishedQuestions = Mapper.Map <IEnumerable <QuestionDto> >(questionsRepository.Find(p => p.CreatedBy == _clientData.Id).Take(Consts.DASHBOARD_DATA_PUBLISHED_QUESTIONS_COUNT).OrderByDescending(q => q.DateCreated));

                candidateDashbaordData.TodoListQuestions  = questionsRepository.IncludeSkills(candidateDashbaordData.TodoListQuestions);
                candidateDashbaordData.PublishedQuestions = questionsRepository.IncludeSkills(candidateDashbaordData.PublishedQuestions);
            }
            catch (Exception e)
            {
                _log.LogError(e, "Error in GetCandidateDashboardData()");
            }
            return(candidateDashbaordData);
        }