public CandidateQuestionDto UpdateQuestionSolution(SolutionQuestionData solutionData, int candidateId)
        {
            var  candidateQuestion = base.GetSingleOrDefault(cq => cq.CandidateUserId == candidateId && cq.QuestionId == solutionData.QuestionId);
            bool isNew             = false;

            if (candidateQuestion == null)
            {
                candidateQuestion = new CandidateQuestion()
                {
                    CandidateUserId = candidateId,
                    QuestionId      = solutionData.QuestionId,
                };
                isNew = true;
            }

            candidateQuestion.Solution     = solutionData.Solution;
            candidateQuestion.SolutionDate = DateTime.Now;
            candidateQuestion.IsDone       = true;

            if (isNew)
            {
                base.Add(candidateQuestion);
            }
            else
            {
                base.Update(candidateQuestion);
            }

            _context.SaveChanges();
            return(Mapper.Map <CandidateQuestionDto>(candidateQuestion));
        }
Exemplo n.º 2
0
        public CandidateQuestionDto PostSolution([FromBody] SolutionQuestionData obj)
        {
            CandidateQuestionDto result = null;

            try
            {
                // Post the question solution
                CandidateQuestionsRepository cqRepository = new CandidateQuestionsRepository(_appDbContext);
                result = cqRepository.UpdateQuestionSolution(obj, _clientData.ChildId);

                // Increment number of solves count
                QuestionsRepository questionsRepository = new QuestionsRepository(_appDbContext);
                questionsRepository.IncrementSolvedCount(obj.QuestionId);
            }
            catch (Exception e)
            {
                _log.LogError(e, "Error posting the solution");
            }
            return(result);
        }