public async Task <IActionResult> ApplicationStatusConfirmation(ApplicationReviewStatusConfirmationEditModel applicationReviewStatusConfirmationEditModel)
        {
            if (!ModelState.IsValid)
            {
                var vm = await _orchestrator.GetApplicationStatusConfirmationViewModelAsync(applicationReviewStatusConfirmationEditModel);

                return(View(vm));
            }

            if (applicationReviewStatusConfirmationEditModel.CanNotifyCandidate)
            {
                var candidateName = await _orchestrator.PostApplicationReviewConfirmationEditModelAsync(applicationReviewStatusConfirmationEditModel, User.ToVacancyUser());

                TempData.Add(TempDataKeys.ApplicationReviewStatusInfoMessage, string.Format(InfoMessages.ApplicationReviewStatusHeader, candidateName, applicationReviewStatusConfirmationEditModel.Outcome.ToString().ToLower()));
                return(RedirectToRoute(RouteNames.VacancyManage_Get));
            }
            return(RedirectToRoute(RouteNames.ApplicationReview_Get));
        }
Esempio n. 2
0
        public async Task <string> PostApplicationReviewConfirmationEditModelAsync(ApplicationReviewStatusConfirmationEditModel m, VacancyUser user)
        {
            var applicationReview = await Utility.GetAuthorisedApplicationReviewAsync(_vacancyClient, m);

            switch (m.Outcome.Value)
            {
            case ApplicationReviewStatus.Successful:
                await _client.SetApplicationReviewSuccessful(applicationReview.Id, user);

                break;

            case ApplicationReviewStatus.Unsuccessful:
                await _client.SetApplicationReviewUnsuccessful(applicationReview.Id, m.CandidateFeedback, user);

                break;

            default:
                throw new ArgumentException("Unhandled ApplicationReviewStatus");
            }
            return(applicationReview.Application.FullName);
        }
Esempio n. 3
0
        internal async Task <ApplicationStatusConfirmationViewModel> GetApplicationStatusConfirmationViewModelAsync(ApplicationReviewStatusConfirmationEditModel applicationReviewStatusConfirmationEditModel)
        {
            await Utility.GetAuthorisedApplicationReviewAsync(_vacancyClient, applicationReviewStatusConfirmationEditModel);

            var applicationReview = await Utility.GetAuthorisedApplicationReviewAsync(_vacancyClient, applicationReviewStatusConfirmationEditModel);

            return(new ApplicationStatusConfirmationViewModel {
                CandidateFeedback = applicationReviewStatusConfirmationEditModel.CandidateFeedback,
                Outcome = applicationReviewStatusConfirmationEditModel.Outcome,
                ApplicationReviewId = applicationReviewStatusConfirmationEditModel.ApplicationReviewId,
                Name = applicationReview.Application.FullName
            });
        }
        internal async Task <ApplicationStatusConfirmationViewModel> GetApplicationStatusConfirmationViewModelAsync(ApplicationReviewStatusConfirmationEditModel m)
        {
            await _utility.GetAuthorisedApplicationReviewAsync(m);

            var applicationReview = await _utility.GetAuthorisedApplicationReviewAsync(m);

            return(new ApplicationStatusConfirmationViewModel {
                CandidateFeedback = m.CandidateFeedback,
                Outcome = m.Outcome,
                ApplicationReviewId = m.ApplicationReviewId,
                Name = applicationReview.Application.FullName
            });
        }