示例#1
0
        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);
        }
示例#2
0
        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));
        }