public void SendForgotPasswordEmail(string email, IMailer mailer) { EnsureLoggedOff(); var targetEmail = Validator.ValidateEmail(email).ToLower(); var loginUser = _userOperations.GetLoginUser(targetEmail); var user = _userOperations.Get(loginUser.UserId); if (!user.Activated) { throw new ActivationException("Please activate the user first"); } user.ActivationCode = Identity.Next(); _userOperations.Update(user); mailer.SendForgotPasswordEmail(user.Id, user.Name, user.Email, user.ActivationCode, _settingProvider.WebsiteUrl); }