Пример #1
0
        public Guid CreateTicket(string email)
        {
            var user = _securityService.GetUserByEmail(email);

            if (user == null)
            {
                throw new UserNotFoundException();
            }
            DateTime utcNow   = DateTime.UtcNow;
            TimeSpan lifetime = _settingsService.GetTicketLifetime();
            Guid     token    = Guid.NewGuid();

            var ticket = new PasswordTicket()
            {
                ExpirationDate = utcNow.Add(lifetime),
                Token          = token,
                UserId         = user.UserId,
            };

            _passwordTicketGateway.Insert(ticket);
            var    url  = _settingsService.GetSettings <string>("RootUrl");
            string link = $"{url}/restorepassword/{token}";
            var    text = String.Format(
                "Вы запросили восстановление пароля на сайте {0} <br/>Ваш логин: {2}.<br/>Чтобы восстановить пароль, перейдите по ссылке {1} <br/><br/>Если Вы не запрашивали восстановление пароля, пожалуйста, проигнорируйте это письмо.<br/><br/>С уважением, администрация сайта {0}.",
                url, link, user.Username);

            _mailService.Send(new MailMsg()
            {
                Receiver = email,
                Subject  = $"Восстановление пароля на сайте {url}",
                Body     = text
            });

            return(token);
        }
Пример #2
0
 public int Insert(PasswordTicket rec)
 {
     return(Exec <int>(GetProcedureString(), rec));
 }