public MethodResult<PasswordMailInfo> CreateTemporaryCode(string nameOrEmail) { if (string.IsNullOrEmpty(nameOrEmail)) return new MethodResult<PasswordMailInfo> { ResultType = ResultTypeEnum.Error }; User user; if (nameOrEmail.Contains("@")) { user = Db.GetUserByEmail(nameOrEmail); if (user == null) return new MethodResult<PasswordMailInfo> { ErrorMessage = Messages.UserNotFoundByEmail }; } else { user = Db.GetUserByLogin(nameOrEmail); if (user == null) return new MethodResult<PasswordMailInfo> { ErrorMessage = Messages.UserNotFoundByLogin }; } var oldCode = Db.GetTemporaryCodeByUserId(user.UserId); var newCode = new TemporaryCode { TemporaryCodeId = oldCode != null ? oldCode.TemporaryCodeId : 0, UserId = user.UserId, Code = RandomHelper.GetRandomString(10), ExpireDate = DateTime.Now.AddHours(AppConfiguration.PasswordLinkTtl) }; Db.Save(newCode); var info = new PasswordMailInfo { UserName = user.UserFio ?? user.Login, Email = user.Email, Code = newCode.Code }; return new MethodResult<PasswordMailInfo>(info); }
public EmailController(string viewName, PasswordMailInfo model) { ViewName = viewName; Model = model; }