public VerifyMobileViewModel Build() { var model = new VerifyMobileViewModel() { Status = _verifyMobileState, PhoneNumber = _mobileNumber, VerifyMobileCode = _mobileVerificationCode, TraineeshipFeature = new TraineeshipFeatureViewModel { ShowTraineeshipsLink = _showTraineeshipsLink, ShowTraineeshipsPrompt = _showTraineeshipsPrompt } }; return(model); }
public async Task <ActionResult> VerifyMobile(VerifyMobileViewModel model) { return(await Task.Run <ActionResult>(() => { var response = _accountMediator.VerifyMobile(UserContext.CandidateId, model); if (response.ViewModel.TraineeshipFeature == null) { _logService.Error("response.ViewModel.TraineeshipFeature == null. Relates to issue with Logstash _id:QWlNNMzdRM2j8q6681rZTg"); } ModelState.Clear(); switch (response.Code) { case AccountMediatorCodes.VerifyMobile.ValidationError: response.ValidationResult.AddToModelState(ModelState, string.Empty); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.InvalidCode: SetUserMessage(VerifyMobilePageMessages.MobileVerificationCodeInvalid, UserMessageLevel.Error); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.VerificationNotRequired: SetUserMessage(VerifyMobilePageMessages.MobileVerificationNotRequired, UserMessageLevel.Warning); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.Error: SetUserMessage(VerifyMobilePageMessages.MobileVerificationError, UserMessageLevel.Error); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.Success: SetUserMessage(VerifyMobilePageMessages.MobileVerificationSuccessText); if (model.ReturnUrl.IsValidReturnUrl()) { return Redirect(model.ReturnUrl); } return RedirectToRoute(CandidateRouteNames.Settings); default: throw new InvalidMediatorCodeException(response.Code); } })); }
public async Task <ActionResult> Resend(VerifyMobileViewModel model) { return(await Task.Run <ActionResult>(() => { var response = _accountMediator.Resend(UserContext.CandidateId, model); switch (response.Code) { case AccountMediatorCodes.Resend.Error: case AccountMediatorCodes.Resend.ResendNotRequired: case AccountMediatorCodes.Resend.ResentSuccessfully: SetUserMessage(response.Message.Text, response.Message.Level); break; default: throw new InvalidMediatorCodeException(response.Code); } return RedirectToAction("VerifyMobile"); })); }
public MediatorResponse <VerifyMobileViewModel> Resend(Guid candidateId, VerifyMobileViewModel verifyMobileViewModel) { verifyMobileViewModel = _accountProvider.SendMobileVerificationCode(candidateId, verifyMobileViewModel); var traineeshipFeature = _apprenticeshipApplicationProvider.GetTraineeshipFeatureViewModel(candidateId); verifyMobileViewModel.TraineeshipFeature = traineeshipFeature; switch (verifyMobileViewModel.Status) { case VerifyMobileState.Ok: return(GetMediatorResponse(AccountMediatorCodes.Resend.ResentSuccessfully, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationCodeMayHaveBeenResent, UserMessageLevel.Success)); case VerifyMobileState.MobileVerificationNotRequired: return(GetMediatorResponse(AccountMediatorCodes.Resend.ResendNotRequired, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationNotRequired, UserMessageLevel.Warning)); default: return(GetMediatorResponse(AccountMediatorCodes.Resend.Error, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationCodeResendFailed, UserMessageLevel.Error)); } }
public VerifyMobileViewModel VerifyMobile(Guid candidateId, VerifyMobileViewModel model) { _logger.Debug("Calling AccountProvider to verify mobile code candidateId {0} and mobile number {1}", candidateId, model.PhoneNumber); try { _candidateService.VerifyMobileCode(candidateId, model.VerifyMobileCode); model.Status = VerifyMobileState.Ok; } catch (CustomException e) { switch (e.Code) { case Domain.Entities.ErrorCodes.EntityStateError: _logger.Info(e.Message, e); model.Status = VerifyMobileState.MobileVerificationNotRequired; break; case Application.Interfaces.Users.ErrorCodes.MobileCodeVerificationFailed: _logger.Info(e.Message, e); model.Status = VerifyMobileState.VerifyMobileCodeInvalid; break; default: _logger.Error(e.Message, e); model.Status = VerifyMobileState.Error; break; } model.ViewModelMessage = e.Message; } catch (Exception e) { _logger.Error("Mobile code verification failed for candidateId {0} and Lme {1}", candidateId, model.PhoneNumber, e); model.Status = VerifyMobileState.Error; model.ViewModelMessage = e.Message; } return(model); }
public VerifyMobileViewModel SendMobileVerificationCode(Guid candidateId, VerifyMobileViewModel model) { _logger.Debug("Calling AccountProvider to send mobile verification code for candidateId {0} to mobile number {1}", candidateId, model.PhoneNumber); try { var candidate = _candidateService.GetCandidate(candidateId); _candidateService.SendMobileVerificationCode(candidate); model.Status = VerifyMobileState.Ok; } catch (CustomException e) { switch (e.Code) { case Domain.Entities.ErrorCodes.EntityStateError: model.Status = VerifyMobileState.MobileVerificationNotRequired; break; default: model.Status = VerifyMobileState.Error; _logger.Error(e.Message, e); break; } model.ViewModelMessage = e.Message; } catch (Exception e) { var message = string.Format( "Sending Mobile verification code to mobile number {1} failed for candidateId {0} ", candidateId, model.PhoneNumber); _logger.Error(message, e); model.Status = VerifyMobileState.Error; model.ViewModelMessage = e.Message; } return(model); }
public async Task <ActionResult> VerifyMobile(VerifyMobileViewModel model) { return(await Task.Run <ActionResult>(() => { var response = _accountMediator.VerifyMobile(UserContext.CandidateId, model); ModelState.Clear(); switch (response.Code) { case AccountMediatorCodes.VerifyMobile.ValidationError: response.ValidationResult.AddToModelState(ModelState, string.Empty); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.InvalidCode: SetUserMessage(VerifyMobilePageMessages.MobileVerificationCodeInvalid, UserMessageLevel.Error); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.VerificationNotRequired: SetUserMessage(VerifyMobilePageMessages.MobileVerificationNotRequired, UserMessageLevel.Warning); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.Error: SetUserMessage(VerifyMobilePageMessages.MobileVerificationError, UserMessageLevel.Error); return View(response.ViewModel); case AccountMediatorCodes.VerifyMobile.Success: SetUserMessage(VerifyMobilePageMessages.MobileVerificationSuccessText); if (string.IsNullOrEmpty(model.ReturnUrl)) { return RedirectToRoute(CandidateRouteNames.Settings); } return Redirect(model.ReturnUrl); default: throw new InvalidMediatorCodeException(response.Code); } })); }
public VerifyMobileViewModel GetVerifyMobileViewModel(Guid candidateId) { _logger.Debug("Calling CandidateService to fetch candidateId {0} details", candidateId); VerifyMobileViewModel model = new VerifyMobileViewModel(); try { var candidate = _candidateService.GetCandidate(candidateId); model.PhoneNumber = candidate.RegistrationDetails.PhoneNumber; if (!candidate.MobileVerificationRequired()) { model.Status = VerifyMobileState.MobileVerificationNotRequired; } } catch (Exception e) { _logger.Error("Mobile code verification failed for candidateId {0} and Lme {1}", candidateId, model.PhoneNumber, e); model.ViewModelMessage = e.Message; model.Status = VerifyMobileState.Error; } return(model); }
public VerifyMobileViewBuilder With(VerifyMobileViewModel viewModel) { _viewModel = viewModel; return(this); }
public MediatorResponse <VerifyMobileViewModel> VerifyMobile(Guid candidateId, VerifyMobileViewModel verifyMobileViewModel) { var validationResult = _verifyMobileViewModelServerValidator.Validate(verifyMobileViewModel); if (!validationResult.IsValid) { return(GetMediatorResponse(AccountMediatorCodes.VerifyMobile.ValidationError, verifyMobileViewModel, validationResult)); } var verifyMobileViewModelResponse = _accountProvider.VerifyMobile(candidateId, verifyMobileViewModel); var traineeshipFeature = _apprenticeshipApplicationProvider.GetTraineeshipFeatureViewModel(candidateId); verifyMobileViewModel.TraineeshipFeature = traineeshipFeature; switch (verifyMobileViewModelResponse.Status) { case VerifyMobileState.Ok: return(GetMediatorResponse(AccountMediatorCodes.VerifyMobile.Success, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationSuccessText, UserMessageLevel.Success)); case VerifyMobileState.VerifyMobileCodeInvalid: return(GetMediatorResponse(AccountMediatorCodes.VerifyMobile.InvalidCode, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationCodeInvalid, UserMessageLevel.Error)); case VerifyMobileState.MobileVerificationNotRequired: return(GetMediatorResponse(AccountMediatorCodes.VerifyMobile.VerificationNotRequired, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationNotRequired, UserMessageLevel.Warning)); default: return(GetMediatorResponse(AccountMediatorCodes.VerifyMobile.Error, verifyMobileViewModel, VerifyMobilePageMessages.MobileVerificationError, UserMessageLevel.Error)); } }