コード例 #1
0
        public void SaveInitialCandidateInterviewResults(InterviewResultViewModel interviewResultViewModel, List <InterviewTask> currentInterviewTasks, ApplicationDbContext _context)
        {
            var interviewResult = new InterviewResult()
            {
                Value          = interviewResultViewModel.Value,
                GeneralComment = interviewResultViewModel.GeneralComment,
                Candidate      = interviewResultViewModel.Candidate
            };

            _context.InterviewResults.Add(interviewResult);
            _context.SaveChanges();

            for (int i = 0; i < interviewResultViewModel.Comment.Count; i++)
            {
                var interviewQuestionsAnswers = new InterviewQuestionsAnswers()
                {
                    InterviewTask = currentInterviewTasks[i],
                    Comment       = interviewResultViewModel.Comment[i],
                    Candidate     = interviewResultViewModel.Candidate
                };

                _context.InterviewQuestionsAnswers.Add(interviewQuestionsAnswers);
                _context.SaveChanges();
            }
        }
コード例 #2
0
 public void UpdateExistingCandidateInterviewResults(InterviewResultViewModel interviewResultViewModel, ApplicationDbContext _context, InterviewResult interviewResult)
 {
     _context.Attach(interviewResult);
     interviewResult.GeneralComment = interviewResultViewModel.GeneralComment;
     interviewResult.Value          = interviewResultViewModel.Value;
     _context.SaveChanges();
 }
コード例 #3
0
        public IActionResult AddInterviewResult(int id)
        {
            InterviewResultViewModel interviewResultModel = new InterviewResultViewModel();
            var candidate = _context.Candidates.FirstOrDefault(x => x.CandidateID == id);

            if (candidate == null || candidate.InvitedToStudy == true)
            {
                return(RedirectToAction(nameof(Interviews)));
            }

            interviewResultModel.Candidate = candidate;

            if (_context.InterviewResults.Any(c => c.Candidate == candidate && _context.InterviewQuestionsAnswers.Any(c => c.Candidate == candidate)))
            {
                interviewResultModel.GeneralComment = _context.InterviewResults
                                                      .Where(c => c.Candidate == interviewResultModel.Candidate)
                                                      .Select(x => x.GeneralComment).FirstOrDefault();
                interviewResultModel.Value = _context.InterviewResults
                                             .Where(c => c.Candidate == interviewResultModel.Candidate)
                                             .Select(x => x.Value).FirstOrDefault();

                interviewResultModel.Comment = _context.InterviewQuestionsAnswers
                                               .Where(c => c.Candidate == interviewResultModel.Candidate)
                                               .Select(x => x.Comment).ToList();

                interviewResultModel.InterviewTaskQuestions = _context.InterviewQuestionsAnswers
                                                              .Where(c => c.Candidate == interviewResultModel.Candidate)
                                                              .Select(x => x.InterviewTask.InterviewTaskDescription).ToList();
            }
            else
            {
                List <InterviewTask> currentInterviewGeneralResultQuestions = _context.InterviewTasks
                                                                              .OrderByDescending(d => d.Date)
                                                                              .Take(9)
                                                                              .ToList();

                for (int i = 0; i < 9; i++)
                {
                    interviewResultModel.Comment.Add("");

                    int    InterviewTaskID          = currentInterviewGeneralResultQuestions[i].InterviewTaskID;
                    string InterviewTaskDescription = _context.InterviewTasks
                                                      .Where(x => x.InterviewTaskID == InterviewTaskID)
                                                      .Select(x => x.InterviewTaskDescription)
                                                      .FirstOrDefault();
                    interviewResultModel.InterviewTaskQuestions.Add(InterviewTaskDescription);
                }
            }

            return(View(interviewResultModel));
        }
コード例 #4
0
        public IActionResult AddInterviewResult(InterviewResultViewModel interviewResultViewModel, int id)
        {
            interviewResultViewModel.Candidate = _context.Candidates.FirstOrDefault(x => x.CandidateID == id);
            var CandidateHasInterviewResults = _context.InterviewResults
                                               .Any(x => x.Candidate == interviewResultViewModel.Candidate);

            var CandidateHasInterviewQuestionsAnswers = _context.InterviewQuestionsAnswers
                                                        .Any(x => x.Candidate == interviewResultViewModel.Candidate);

            if (CandidateHasInterviewResults && CandidateHasInterviewQuestionsAnswers)
            {
                var candidateInterviewResult = _context.InterviewResults
                                               .Where(x => x.Candidate == interviewResultViewModel.Candidate)
                                               .FirstOrDefault();
                var candidateInterviewAnswersInQuestions = _context.InterviewQuestionsAnswers
                                                           .Where(x => x.Candidate == interviewResultViewModel.Candidate)
                                                           .ToList();
                interviewResultViewModel.InterviewTaskQuestions = _context.InterviewQuestionsAnswers
                                                                  .Where(c => c.Candidate == interviewResultViewModel.Candidate).Select(x => x.InterviewTask.InterviewTaskDescription).ToList();

                var validationResultMessage = _candidateInterviewResultProcessor
                                              .ValidateInterviewResultsToTestResultLimits(candidateInterviewResult, interviewResultViewModel);

                if (validationResultMessage != null)
                {
                    ModelState.AddModelError(string.Empty, validationResultMessage);
                    return(View(interviewResultViewModel));
                }

                _candidateInterviewResultProcessor.UpdateExistingCandidateInterviewResults(interviewResultViewModel, _context, candidateInterviewResult);
            }
            else
            {
                List <InterviewTask> currentInterviewTask = _context.InterviewTasks
                                                            .OrderByDescending(x => x.Date)
                                                            .Take(9)
                                                            .ToList();

                _candidateInterviewResultProcessor.SaveInitialCandidateInterviewResults(interviewResultViewModel, currentInterviewTask, _context);
            }
            return(RedirectToAction(nameof(Interviews)));
        }
コード例 #5
0
        public string ValidateInterviewResultsToTestResultLimits(InterviewResult interviewResult, InterviewResultViewModel interviewResultViewModel)
        {
            string message = null;

            if (interviewResultViewModel.GeneralComment == null)
            {
                message = $"Pagrindinis komentaras negali būti tuščias";
            }

            if (interviewResultViewModel.Value > 10)
            {
                message = $"Pokalbio balas negali būti didesnis negu 10";
            }

            return(message);
        }