コード例 #1
0
        public async Task UpdateInterview(InterviewViewModel viewModel)
        {
            var interview = _mapper.Map <Interview>(viewModel);

            _context.Update(interview);
            await _context.SaveChangesAsync();
        }
コード例 #2
0
        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"));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        public static InterviewViewModel GetInterviewViewModel(Category entitiy)
        {
            var viewModel = new InterviewViewModel();

            viewModel.Candidate        = new CandidateViewModel();
            viewModel.Category         = GetCategoryViewModel(entitiy);
            viewModel.SelectedExamType = ExamType.Unknown;

            return(viewModel);
        }
コード例 #8
0
        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));
        }
コード例 #9
0
        public async Task <IActionResult> Create(InterviewViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                await _service.CreateInterview(viewModel);

                return(RedirectToAction(nameof(Index)));
            }

            return(View(viewModel));
        }
コード例 #10
0
        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));
        }
コード例 #11
0
        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));
        }
コード例 #12
0
        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));
        }
コード例 #13
0
        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));
        }
コード例 #14
0
        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 }));
        }
コード例 #15
0
        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));
        }
コード例 #16
0
        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));
        }