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(); } }
public void UpdateExistingCandidateInterviewResults(InterviewResultViewModel interviewResultViewModel, ApplicationDbContext _context, InterviewResult interviewResult) { _context.Attach(interviewResult); interviewResult.GeneralComment = interviewResultViewModel.GeneralComment; interviewResult.Value = interviewResultViewModel.Value; _context.SaveChanges(); }
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)); }
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))); }
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); }