Exemplo n.º 1
0
        public static void SendRegistrationConfirmation(int userId, string login, string email)
        {
            string url = string.Format("http://basketball.ru.com/confirmation?id={0}&hash={1}",
                                       userId, UserHlp.CalcConfirmationCode(userId, login, "bbbin")
                                       );

            HElement answer = h.Div(
                h.P("Вы указали этот адрес при регистрации на basketball.ru.com"),
                h.P("Чтобы завершить регистрацию, пожалуйста, перейдите по ссылке:"),
                h.A(
                    h.href(url),
                    new HAttribute("target", "_blank"),
                    url
                    ),
                h.P("Если вы не регистрировались на сайте, значит, произошла ошибка - просто проигнорируйте это письмо")
                );

            SiteSettings settings   = SiteContext.Default.SiteSettings;
            SmtpClient   smtpClient = AuthHlp.CreateSmtpClient(
                settings.SmtpHost, settings.SmtpPort, settings.SmtpUserName, settings.SmtpPassword);

            AuthHlp.SendMail(smtpClient, settings.MailFrom, email,
                             "Подтвердите регистрацию на basketball.ru.com", answer.ToHtmlText()
                             );

            Logger.AddMessage("Подтверждение регистрации: {0}", email);
        }
Exemplo n.º 2
0
        public static IHtmlControl GetRestorePasswordView(SiteState state)
        {
            return(new HPanel(
                       Decor.Title("Восстановление пароля"),
                       Decor.AuthEdit("login", "Введите логин:"),
                       Decor.AuthEdit("email", "Или E-mail:"),
                       new HPanel(
                           Decor.Button("Выслать пароль на почту").Event("user_restore", "restoreData",
                                                                         delegate(JsonData json)
            {
                string login = json.GetText("login");
                string email = json.GetText("email");

                WebOperation operation = state.Operation;

                if (!operation.Validate(StringHlp.IsEmpty(login) && StringHlp.IsEmpty(email),
                                        "Введите логин или email"))
                {
                    return;
                }

                LightObject findUser = null;
                if (!StringHlp.IsEmpty(login))
                {
                    string xmlLogin = UserType.Login.CreateXmlIds("", login);
                    findUser = context.UserStorage.FindUser(xmlLogin);
                }
                else
                {
                    foreach (LightObject user in context.UserStorage.All)
                    {
                        if (user.Get(BasketballUserType.Email) == email)
                        {
                            findUser = user;
                            break;
                        }
                    }
                }

                if (!operation.Validate(findUser == null, "Пользователь не найден"))
                {
                    return;
                }

                try
                {
                    HElement answer = h.Div(
                        h.P(string.Format("Ваш логин: {0}", findUser.Get(BasketballUserType.Login))),
                        h.P(string.Format("Ваш пароль: {0}", findUser.Get(BasketballUserType.Password)))
                        );

                    SiteSettings settings = SiteContext.Default.SiteSettings;
                    SmtpClient smtpClient = AuthHlp.CreateSmtpClient(
                        settings.SmtpHost, settings.SmtpPort, settings.SmtpUserName, settings.SmtpPassword);
                    AuthHlp.SendMail(smtpClient, settings.MailFrom, findUser.Get(BasketballUserType.Email),
                                     "Восстановление пароля", answer.ToHtmlText()
                                     );
                }
                catch (Exception ex)
                {
                    Logger.WriteException(ex);

                    operation.Validate(true, string.Format("Непредвиденная ошибка при отправке заявки: {0}", ex.Message));
                    return;
                }

                operation.Message = "Пароль выслан вам на почту";
            }
                                                                         )
                           )
                       ).EditContainer("restoreData"));
        }