public MediatorResponse <ActivationViewModel> Activate(Guid candidateId, ActivationViewModel activationViewModel) { var activatedResult = _activationViewModelServerValidator.Validate(activationViewModel); if (!activatedResult.IsValid) { return(GetMediatorResponse(RegisterMediatorCodes.Activate.FailedValidation, activationViewModel, activatedResult)); } activationViewModel = _candidateServiceProvider.Activate(activationViewModel, candidateId); switch (activationViewModel.State) { case ActivateUserState.Activated: return(GetMediatorResponse(RegisterMediatorCodes.Activate.SuccessfullyActivated, activationViewModel, ActivationPageMessages.AccountActivated, UserMessageLevel.Success)); case ActivateUserState.Error: return(GetMediatorResponse(RegisterMediatorCodes.Activate.SuccessfullyActivated, activationViewModel, activationViewModel.ViewModelMessage, UserMessageLevel.Success)); case ActivateUserState.InvalidCode: activatedResult = _activationViewModelServerValidator.Validate(activationViewModel); return(GetMediatorResponse(RegisterMediatorCodes.Activate.InvalidActivationCode, activationViewModel, activatedResult)); default: throw new ArgumentOutOfRangeException(); } }