public async Task UpdateInterview(InterviewViewModel viewModel) { var interview = _mapper.Map <Interview>(viewModel); _context.Update(interview); await _context.SaveChangesAsync(); }
public ActionResult Edit(InterviewViewModel ViewModel) { Interview interview = db.Interviews.Find(ViewModel.interview.id); db.Entry(interview).CurrentValues.SetValues(ViewModel.interview); interview.Applications.Clear(); if (ViewModel.applications != null) { foreach (var application in ViewModel.applications) { interview.Applications.Add(db.Applications.Find(application.id)); } } try { db.SaveChanges(); } catch (Exception e) { Session["FlashMessage"] = "Failed to edit interview timeslot." + e.Message; ViewBag.statusList = new SelectList(db.InterviewStatus, "id", "name", interview.status_id); ViewBag.programList = new SelectList(db.Programs.Where(p => p.require_interview), "id", "name"); ViewBag.venueList = new SelectList(db.InterviewVenues.Where(v => v.status), "id", "name"); return(View(ViewModel)); } return(RedirectToAction("Index")); }
public async Task <ActionResult> Index() { var sectorList = await _sectorClient.GetAllAsync(); var companyProfileList = await _companyClient.GetAllCompanyProfiles(); var activeFairList = await _fairClient.GetAllFairs(); var interviewList = await _interviewClient.GetAllAsync(); var salonList = new List <SalonDTO>(); foreach (var activeFair in activeFairList) { salonList.AddRange(activeFair.Salons); } InterviewViewModel vm = new InterviewViewModel() { Sectors = sectorList, CompanyProfiles = companyProfileList, Fairs = activeFairList, Salons = salonList, Interviews = interviewList }; return(View(vm)); }
public static InterviewsViewModel GetAllInterviewsList(InterviewsFiltersPostViewModel filters) { InterviewsViewModel result = new InterviewsViewModel(); if (filters.selectedstages == null) { filters.selectedstages = new List <int>(); } if (filters.selectedseniorities == null) { filters.selectedseniorities = new List <int>(); } using (var dbContext = new AARPDbContext()) { var interviewers = dbContext.Interviewers.ToList(); var interviewees = dbContext.Interviewees.ToList(); var stages = dbContext.InterviewStages.ToList(); var seniorities = dbContext.Seniorities.ToList(); var ratings = dbContext.InterviewRatings.ToList(); var interviews = dbContext.Interviews.Where(x => filters.selectedstages.Contains(x.InterviewStageId) && filters.selectedseniorities.Contains(x.SeniorityId) && (filters.dateFrom != null ? x.Date >= filters.dateFrom : true) && (filters.dateTo != null ? x.Date <= filters.dateTo : true) ); foreach (var interview in interviews) { InterviewViewModel interviewVM = new InterviewViewModel(); var target = interviewers.FirstOrDefault(f => f.Id == interview.InterviewerId); if (target != null) { interviewVM.Interviewer = interviewers.Where(x => x.Id == interview.InterviewerId).First().InterviewerName; interviewVM.Interviewee = interviewees.Where(x => x.Id == interview.IntervieweeId).First().Name; interviewVM.IntervieweeID = interviewees.Where(x => x.Id == interview.IntervieweeId).First().Id; interviewVM.InterviewDate = interview.Date; interviewVM.InterviewStage = stages.Where(x => x.Id == interview.InterviewStageId).First().Stage; interviewVM.InterviewStatus = interview.SurveyStatus; var seniority = seniorities.FirstOrDefault(x => x.Id == interview.SeniorityId); if (seniority != null) { interviewVM.Seniority = seniority.SeniorityName; } interviewVM.Rating = interview.RatingId > 0 ? ratings.Where(x => x.Id == interview.RatingId).First().Rating : 0; result.Interviews.Add(interviewVM); } } } return(result); }
public ActionResult Index() { var basket = _basketLoader.Invoke(new BasketRequest()); var shippingOptions = _getShippingOptions.Invoke(new GetShippingOptionsRequest()).ShippingOptions; var viewModel = new InterviewViewModel {Basket = basket, ShippingOptions = shippingOptions}; return View(viewModel); }
public ActionResult SubmitInterview(InterviewViewModel interviewModel) { if (ModelState.IsValid) { try { var user = db.Users.Find(User.Identity.GetUserId()); Interview interview = db.Interviews.Where(i => i.CandidateId == user.Id).FirstOrDefault(); List <Answer> answers = new List <Answer>(); answers.Add(interviewModel.Answer1); answers.Add(interviewModel.Answer2); answers.Add(interviewModel.Answer3); answers.Add(interviewModel.Answer4); answers.Add(interviewModel.Answer5); answers.Add(interviewModel.Answer6); answers.Add(interviewModel.Answer7); answers.Add(interviewModel.Answer8); answers.Add(interviewModel.Answer9); answers.Add(interviewModel.Answer10); foreach (var ans in answers) { Answer newAnswer = new Answer() { Candidate = user, CandidateId = user.Id, Question = db.Questions.Find(ans.QuestionId), QuestionId = ans.QuestionId, Text = ans.Text, Score = 0 }; db.Answers.Add(newAnswer); db.SaveChanges(); } interview.IsDone = true; db.SaveChanges(); Session.Remove("TimeExpire" + Session.SessionID); TempData["success"] = "Your answers have been successfully submited."; return(RedirectToAction("Index", "Home")); } catch (NullReferenceException) { ViewBag.exceptionMessage = ViewBag.exceptionMessage = "The interview doesn't exist"; } catch (Exception) { ViewBag.exceptionMessage = "You can't access this page."; } return(View(error)); } return(View("~/Views/Interviews/StartInterview.cshtml", interviewModel)); }
public static InterviewViewModel GetInterviewViewModel(Category entitiy) { var viewModel = new InterviewViewModel(); viewModel.Candidate = new CandidateViewModel(); viewModel.Category = GetCategoryViewModel(entitiy); viewModel.SelectedExamType = ExamType.Unknown; return(viewModel); }
public ActionResult Index() { var basket = _basketLoader.Invoke(new BasketRequest()); var shippingOptions = _getShippingOptions.Invoke(new GetShippingOptionsRequest()).ShippingOptions; var viewModel = new InterviewViewModel { Basket = basket, ShippingOptions = shippingOptions }; return(View(viewModel)); }
public async Task <IActionResult> Create(InterviewViewModel viewModel) { if (ModelState.IsValid) { await _service.CreateInterview(viewModel); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); }
public ActionResult AssignApplicationDropdown(int index, int id) { InterviewViewModel ViewModel = new InterviewViewModel(); Interview interview = db.Interviews.Find(id); ViewModel.interview = interview; ViewBag.index = index; var applicationIds = interview.Applications.Where(a => a.ApplicationStatus.name == "Processed").Select(x => x.id); ViewBag.applicationList = new SelectList(db.Applications.Where(a => a.program_id == interview.program_id && (a.Interviews.Count() == 0 || applicationIds.Contains(a.id))), "id", "StudentProfile.name"); return(PartialView(ViewModel)); }
public async Task <IActionResult> Edit(int id, InterviewViewModel viewModel) { if (id != viewModel.Id) { return(NotFound()); } if (ModelState.IsValid) { await _service.UpdateInterview(viewModel); return(RedirectToAction(nameof(Index))); } return(View(viewModel)); }
public ActionResult Details(int idi) { try { Interview interview = db.Interviews.Find(idi); var UserId = User.Identity.GetUserId(); if ((interview.Job.Department.AdminId != UserId && !User.IsInRole("Administrator")) || interview.IsDone == false) { throw new Exception(); } if (interview.IsGraded == true) { TempData["danger"] = "The Interview has already been graded."; return(RedirectToAction("Index")); } List <Answer> answers = db.Answers.Where(a => a.CandidateId == interview.CandidateId).ToList(); foreach (var ans in answers) { ans.Question = db.Questions.Find(ans.QuestionId); } InterviewViewModel interviewModel = new InterviewViewModel { InterviewId = idi, Answer1 = answers[0], Answer2 = answers[1], Answer3 = answers[2], Answer4 = answers[3], Answer5 = answers[4], Answer6 = answers[5], Answer7 = answers[6], Answer8 = answers[7], Answer9 = answers[8], Answer10 = answers[9] }; return(View(interviewModel)); } catch (NullReferenceException) { ViewBag.exceptionMessage = "The interview doesn't exist."; } catch (Exception) { ViewBag.exceptionMessage = "You can't access this page."; } return(View(error)); }
public ActionResult Edit(int id = 0) { InterviewViewModel ViewModel = new InterviewViewModel(); Interview interview = db.Interviews.Find(id); if (interview == null) { return(HttpNotFound()); } ViewModel.interview = interview; ViewModel.applications = interview.Applications.ToList(); ViewBag.statusList = new SelectList(db.InterviewStatus, "id", "name", interview.status_id); ViewBag.programList = new SelectList(db.Programs.Where(p => p.require_interview), "id", "name"); var applicationIds = interview.Applications.Select(x => x.id); ViewBag.applicationList = new SelectList(db.Applications.Where(a => a.program_id == interview.program_id && (a.Interviews.Count() == 0 || applicationIds.Contains(a.id))), "id", "StudentProfile.name"); ViewBag.venueList = new SelectList(db.InterviewVenues.Where(v => v.status), "id", "name"); return(View(ViewModel)); }
public async Task <IActionResult> Index(InterviewViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var candidate = await _userService.InitCandidateAsync(model.Candidate.ToCandidateEntity()); var exam = await _interviewService.GetExamByCategoryAsync(model.Category.Id, model.SelectedExamType); if (candidate == null || exam == null) { return(RedirectToAction(nameof(HomeController.Error))); } var interview = await _interviewService.InitInterviewAsync(candidate.Id, exam.Id); return(RedirectToAction(nameof(Exam), new { id = interview.Id })); }
public ActionResult SubmitScore(InterviewViewModel interviewModel) { if (ModelState.IsValid) { try { Interview interview = db.Interviews.Find(interviewModel.InterviewId); List <Answer> answers = new List <Answer>(); answers.Add(interviewModel.Answer1); answers.Add(interviewModel.Answer2); answers.Add(interviewModel.Answer3); answers.Add(interviewModel.Answer4); answers.Add(interviewModel.Answer5); answers.Add(interviewModel.Answer6); answers.Add(interviewModel.Answer7); answers.Add(interviewModel.Answer8); answers.Add(interviewModel.Answer9); answers.Add(interviewModel.Answer10); float interviewScore = 0; foreach (var ans in answers) { Answer answerToGrade = db.Answers.Find(ans.AnswerId); if (answerToGrade != null) { answerToGrade.Score = ans.Score; } interviewScore += ans.Score; db.SaveChanges(); } interview.IsGraded = true; interview.Score = interviewScore; db.SaveChanges(); TempData["success"] = "The interview has been successfully graded."; var candidate = db.Users.Find(interview.CandidateId); string message; if (interview.Score >= interview.Job.MinimumScore) { message = "Hi, " + candidate.UserName + "! \n We're happy to announce you that you've been selected for the next stage of the interview for " + interview.Job.Title + " job. Someone will contact you soon."; } else { var callbackUrl = Url.Action("Index", "Home", routeValues: null, protocol: Request.Url.Scheme); message = "Hi, " + candidate.UserName + "! \n We're sorry to announce that you haven't been selected for the next stage of the interview for " + interview.Job.Title + " job. You can apply for other jobs on our website.\n" + callbackUrl; candidate.IsActive = false; db.SaveChanges(); } new AccountController().SendMail(candidate.Email, "Preliminary Interview Result", message); return(Redirect(Url.RouteUrl(new { controller = "News", action = "Index" }) + "#interviews")); //return RedirectToAction("Index", "News"); } catch (NullReferenceException e) { ViewBag.exceptionMessage = e.Message; } catch (Exception) { ViewBag.exceptionMessage = "You can't access this page."; } return(View(error)); } return(View("~/Views/Answers/Details.cshtml", interviewModel)); }
public ActionResult StartInterview() { try { var user = db.Users.Find(User.Identity.GetUserId()); Interview interview = db.Interviews.Where(i => i.CandidateId == user.Id).FirstOrDefault(); if (interview.IsDone == true || interview.HasBegun == true) { return(RedirectToAction("Index", "Answers")); } interview.HasBegun = true; db.SaveChanges(); List <Answer> answers = new List <Answer>(); List <Question> allQuestions = db.Questions.Where(q => q.JobId == interview.JobId && q.Approved).ToList(); int qcount = 1; Random Randomizer = new Random(); while (allQuestions.Count > 0 && qcount <= 10) { int idx = Randomizer.Next(0, allQuestions.Count); Answer answer = new Answer { Candidate = user, CandidateId = user.Id, Question = allQuestions[idx], QuestionId = allQuestions[idx].QuestionId, Text = "", Score = 0 }; answers.Add(answer); allQuestions.RemoveAt(idx); ++qcount; } InterviewViewModel interviewModel = new InterviewViewModel { Answer1 = answers[0], Answer2 = answers[1], Answer3 = answers[2], Answer4 = answers[3], Answer5 = answers[4], Answer6 = answers[5], Answer7 = answers[6], Answer8 = answers[7], Answer9 = answers[8], Answer10 = answers[9] }; Session["TimeExpire" + Session.SessionID] = DateTime.UtcNow.AddSeconds(5400); return(View(interviewModel)); } catch (NullReferenceException) { ViewBag.exceptionMessage = "The interview doesn't exist"; } catch (Exception) { ViewBag.exceptionMessage = "You can't access this page."; } return(View(error)); }