public ActivationViewModel Activate(ActivationViewModel model, Guid candidateId) { _logger.Info( "Calling CandidateServiceProvider to activate user with Id={0}", candidateId); try { _candidateService.Activate(model.EmailAddress, model.ActivationCode); _authenticationTicketService.SetAuthenticationCookie(_httpContext.Response.Cookies, candidateId.ToString(), UserRoleNames.Activated); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Activated)); } catch (CustomException e) { switch (e.Code) { case Domain.Entities.ErrorCodes.EntityStateError: _logger.Error("Candidate was in an invalid state for activation:" + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Error, ActivationPageMessages.ActivationFailed)); default: _logger.Info("Candidate activation failed for " + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.InvalidCode, ActivationPageMessages.ActivationCodeIncorrect)); } } catch (Exception e) { _logger.Error("Candidate activation failed for " + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Error, ActivationPageMessages.ActivationFailed)); } }
public ActivationViewModel Activate(ActivationViewModel model, Guid candidateId) { _logger.Info( "Calling CandidateServiceProvider to activate user with Id={0}", candidateId); try { var user = _userAccountService.GetUser(candidateId); if (user.Status == UserStatuses.Active) { _authenticationTicketService.SetAuthenticationCookie(candidateId.ToString(), UserRoleNames.Activated); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.AlreadyActivated)); } var candidate = _candidateService.GetCandidate(candidateId); if (!String.Equals(candidate.RegistrationDetails.EmailAddress, model.EmailAddress, StringComparison.CurrentCultureIgnoreCase)) { _logger.Warn("Candidate email address {0} does not match supplied email address {1}", candidate.RegistrationDetails.EmailAddress, model.EmailAddress); } _candidateService.Activate(candidateId, model.ActivationCode); _authenticationTicketService.SetAuthenticationCookie(candidateId.ToString(), UserRoleNames.Activated); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Activated)); } catch (CustomException e) { switch (e.Code) { case Domain.Entities.ErrorCodes.EntityStateError: _logger.Error("Candidate was in an invalid state for activation:" + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Error, ActivationPageMessages.ActivationFailed)); default: _logger.Info("Candidate activation failed for " + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.InvalidCode, ActivationPageMessages.ActivationCodeIncorrect)); } } catch (Exception e) { _logger.Error("Candidate activation failed for " + model.EmailAddress, e); return(new ActivationViewModel(model.EmailAddress, model.ActivationCode, ActivateUserState.Error, ActivationPageMessages.ActivationFailed)); } }