private void RequestEmailChange(UserModel viewModel, UrlHelper helper, User user) { string originalPendingEmail = user.PendingEmail; if (viewModel.PendingEmail != user.EmailAddress) { viewModel.CopyTo(user); string actionEndpoint = helper.AbsoluteAction("ConfirmEmail", "Account"); Uri confirmationEndpoint = new Uri(actionEndpoint); EmailConfirmationManager.Request(user, confirmationEndpoint); } else { viewModel.CopyTo(user); } }
public ConfirmEmailModel GenerateConfirmEmailViewModel(Guid confirmationIdentifier) { ConfirmEmailModel viewModel; User user = UserRepository.Items.SingleOrDefault(u => u.ConfirmationGuid == confirmationIdentifier); if (user == null || UserRepository.Items.Any(u => u.Id != user.Id && u.EmailAddress == user.PendingEmail)) { return(new ConfirmEmailModel { Success = false }); } viewModel = new ConfirmEmailModel { Success = true, UserDisplayName = user.DisplayName, UserEmailAddress = user.PendingEmail }; EmailConfirmationManager.Process(user); UserRepository.Update(user); RepositoryContainer.Save(); return(viewModel); }