public async Task <ScheduleInterviewAppointmentReminderViewModel> GetViewModelForScheduleInterviewAppointmentReminder(string interviewAppointmentId, string userId) { _logger.LogInformation($"Executing GetViewModelForScheduleInterviewAppointmentReminder with interviewAppointmentId={interviewAppointmentId}. (UserID: {userId})"); var interviewAppointment = await _context.InterviewAppointments.Include(x => x.Interview).ThenInclude(x => x.Application).FirstOrDefaultAsync(x => x.Id == interviewAppointmentId); if (interviewAppointment == null) { _logger.LogError($"InterviewAppointment with ID:{interviewAppointmentId} not found. (UserID: {userId})"); throw new NotFoundException(_stringLocalizer["InterviewAppointment with ID:{0} not found.", interviewAppointmentId]); } if (interviewAppointment.Interview.Application.UserId != userId) { _logger.LogError($"User with ID:{userId} is not allowed to get InterviewAppointment with ID:{interviewAppointmentId}. (UserID: {userId})"); throw new PermissionException(_stringLocalizer["You ares not allowed to get InterviewAppointment with ID:{0}.", interviewAppointmentId]); } if (interviewAppointment.InterviewAppointmentState != InterviewAppointmentState.Confirmed) { _logger.LogError($"InterviewAppointment with ID:{interviewAppointmentId} is not in Confirmed InterviewAppointmentState. (UserID: {userId})"); throw new PermissionException(_stringLocalizer["InterviewAppointment with ID:{0} is not in Confirmed InterviewAppointmentState.", interviewAppointmentId]); } interviewAppointment.StartTime = interviewAppointment.StartTime.ToLocalTime(); interviewAppointment.EndTime = interviewAppointment.EndTime.ToLocalTime(); var vm = new ScheduleInterviewAppointmentReminderViewModel() { InterviewAppointment = interviewAppointment, Time = 1, }; return(vm); }
public async Task <IActionResult> ScheduleInterviewAppointmentReminder(string interviewAppointmentId, ScheduleInterviewAppointmentReminderViewModel scheduleInterviewAppointmentReminderViewModel, string applicationId = null, string returnUrl = null) { var myId = _userManager.GetUserId(HttpContext.User); try { await _myApplicationService.ProcessScheduleInterviewAppointmentReminder(interviewAppointmentId, scheduleInterviewAppointmentReminderViewModel.Time, myId); TempData["Success"] = _stringLocalizer["Scheduled."].ToString(); } catch (CustomRecruiterException ex) { TempData["Error"] = ex.Message; return(RedirectToAction(nameof(MyApplicationController.ScheduleInterviewAppointmentReminder), new { interviewAppointmentId, returnUrl })); } return(RedirectToLocalOrToMyApplicationDetails(returnUrl, applicationId)); }