Пример #1
0
        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);
        }
Пример #2
0
 public EmailController(string viewName, PasswordMailInfo model)
 {
     ViewName = viewName;
     Model = model;
 }