public ActionResult SMTPSettingsEdit(ToolsSMTPSetting model)
 {
     if (ModelState.IsValid)
     {
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("SMTPSettings", "SiteTools", null));
     }
     return(View(model));
 }
Пример #2
0
        //============================================================



        //============================================================
        // используется в проекте
        // подтверждение почтового ящика пользователя
        // отправка письма
        public bool GenerateEmailConfirmation(string id)
        {
            ApplicationUser user = UserManager.FindById(id);

            // загрузка настроек smtp
            ToolsSMTPSetting smtpSetting = db.ToolsSMTPSettings.FirstOrDefault();
            // генерация кода
            Guid   codeGUID = Guid.NewGuid();
            string code     = codeGUID.ToString();

            user.CodesVerificationEmail      = new CodesVerificationEmail();
            user.CodesVerificationEmail.Code = code;
            UserManager.Update(user);
            string callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

            // отправка письма
            string body       = "Подтвердите ваш e-mail адрес перейдя <a href=\"" + callbackUrl + "\">по этой ссылке</a>";
            string title      = "Подтверждение E-mail адреса";
            bool   sendResult = MailSender.SendRmail(smtpSetting, code, title, body, user.Email);

            return(sendResult);
        }
Пример #3
0
        public static bool SendRmail(ToolsSMTPSetting smtpSetting, string code, string title, string body, string email)
        {
            bool result = false;

            //
            var message = new MailMessage();

            message.To.Add(new MailAddress(email));
            message.From       = new MailAddress(smtpSetting.EmailFrom);
            message.Subject    = title + " " + "Интернет магазин - \"РосКвартал\"";
            message.Body       = body;
            message.IsBodyHtml = true;

            using (var smtp = new SmtpClient())
            {
                var credential = new NetworkCredential
                {
                    UserName = smtpSetting.UserName,
                    Password = smtpSetting.Password
                };
                smtp.Credentials = credential;
                smtp.Host        = smtpSetting.Host;
                smtp.Port        = smtpSetting.Port;
                smtp.EnableSsl   = smtpSetting.EnableSsl;
                try
                {
                    smtp.Send(message);
                    result = true;
                }
                catch
                {
                    result = false;
                }
            }
            return(result);
        }
Пример #4
0
        //============================================================



        //============================================================
        // используется в проекте
        // сброс пароля - отправка письма с кодом
        // отправка письма
        public bool GeneratePasswordReset(string id)
        {
            ApplicationUser user = UserManager.FindById(id);

            // загрузка настроек smtp
            ToolsSMTPSetting smtpSetting = db.ToolsSMTPSettings.FirstOrDefault();

            // генерация кода
            Guid   codeGUID = Guid.NewGuid();
            string code     = codeGUID.ToString();

            user.CodesResetPassword      = new CodesResetPassword();
            user.CodesResetPassword.Code = code;
            UserManager.Update(user);

            string callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);

            // отправка письма
            string body       = "Для восстановления доступа к вашему аккаунту перейдите <a href=\"" + callbackUrl + "\">по этой ссылке</a>";
            string title      = "Восстановление доступа";
            bool   sendResult = MailSender.SendRmail(smtpSetting, code, title, body, user.Email);

            return(sendResult);
        }
Пример #5
0
        protected override void Seed(ShopRosKvartal.Models.ApplicationDbContext context)
        {
            var userManager = new ApplicationUserManager(new UserStore <ApplicationUser>(context));
            var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(context));

            //============================================================
            //инициализация ролей
            if (!context.Roles.Any())
            {
                // создание роли
                var role = new IdentityRole {
                    Name = "Администратор"
                };
                // добавление роли в бд
                roleManager.Create(role);

                role = new IdentityRole {
                    Name = "Модератор"
                };
                roleManager.Create(role);

                role = new IdentityRole {
                    Name = "Покупатель"
                };
                roleManager.Create(role);
            }
            //============================================================

            //============================================================
            //создание админа для пустой БД
            var admin = userManager.FindByName("Admin");

            if (admin == null || !context.Users.Any())
            {
                // создание админа
                admin = new ApplicationUser {
                    Email = "*****@*****.**", UserName = "******"
                };
                string password = "******";
                var    result   = userManager.Create(admin, password);

                // если создание пользователя прошло успешно
                if (result.Succeeded)
                {
                    var role = roleManager.FindByName("Администратор");
                    if (role != null)
                    {
                        // добавляем для пользователя роль
                        userManager.AddToRole(admin.Id, role.Name);
                    }
                    else
                    {
                        // создание роли
                        role = new IdentityRole {
                            Name = "Администратор"
                        };
                        // добавление роли в бд
                        roleManager.Create(role);
                        // добавляем для пользователя роль
                        userManager.AddToRole(admin.Id, role.Name);
                    }
                }
            }
            //============================================================

            //============================================================
            //инициализация SMTP сервера
            if (!context.ToolsSMTPSettings.Any())
            {
                ToolsSMTPSetting smtp = new ToolsSMTPSetting();
                smtp.EmailFrom = "*****@*****.**";
                smtp.UserName  = "******";
                smtp.Password  = "******";
                smtp.Host      = "smtp.gmail.com";
                smtp.Port      = 587;
                smtp.EnableSsl = true;
                context.ToolsSMTPSettings.Add(smtp);
                context.SaveChanges();
            }
            //============================================================

            //============================================================
            //инициализация таблицы полов пользователей
            if (!context.UserGenders.Any())
            {
                UserGender gender = new UserGender();
                gender.Gender = "Мужской";
                context.UserGenders.Add(gender);
                context.SaveChanges();

                gender.Gender = "Женский";
                context.UserGenders.Add(gender);
                context.SaveChanges();
            }
            //============================================================

            //============================================================
            //инициализация таблицы категории
            if (!context.ShopCategories.Any())
            {
                ShopCategory parent = new ShopCategory();
                parent.Name  = "Спортивное питание";
                parent.Alias = Translit.TranslitString(parent.Name);
                context.ShopCategories.Add(parent);
                context.SaveChanges();

                //-----------------------------------------------
                ShopCategory child = new ShopCategory {
                    Name     = "Протеины",
                    ParentId = parent.Id
                };
                child.Alias = Translit.TranslitString(child.Name);
                context.ShopCategories.Add(child);
                context.SaveChanges();
                //-----------------------------------------------
                child = new ShopCategory
                {
                    Name     = "Гейнеры",
                    ParentId = parent.Id
                };
                child.Alias = Translit.TranslitString(child.Name);
                context.ShopCategories.Add(child);
                context.SaveChanges();
            }
            //============================================================

            //============================================================
            //инициализация таблицы вкус товара
            if (!context.ShopProductsTastes.Any())
            {
                string[] tastes = { "Ваниль", "Клубника", "Шоколад", "Карамель-ваниль", "Малина-шоколад", "Миндаль-шоколад",
                                    "Малина", "Банан",    "Вишня",   "Абрикос",         "Персик",         "Апельсин" };
                for (int i = 0; i < tastes.Length; i++)
                {
                    ShopProductsTaste taste = new ShopProductsTaste
                    {
                        Name = tastes[i]
                    };
                    context.ShopProductsTastes.Add(taste);
                    context.SaveChanges();
                }
            }
            //============================================================

            //============================================================
            //инициализация таблицы брэнды
            if (!context.ShopProductsBrands.Any())
            {
                string[] brands = { "Optimum Nutrition",
                                    "Multipower",
                                    "BSN",
                                    "Dymatize",
                                    "MuscleTech",
                                    "Weider",
                                    "Sponser",
                                    "Twinlab",
                                    "Gaspari Nutrition",
                                    "Universal Nutrition" };
                for (int i = 0; i < brands.Length; i++)
                {
                    ShopProductsBrand brand = new ShopProductsBrand
                    {
                        Name  = brands[i],
                        Alias = brands[i].Replace(" ", "-")
                    };
                    context.ShopProductsBrands.Add(brand);
                    context.SaveChanges();
                }
            }
            //============================================================
        }
        //==========================================================



        //==========================================================
        //==== Редактирование настроек почтового сервиса (SMTP) ====
        //======================= Метод GET ========================
        public ActionResult SMTPSettingsEdit()
        {
            ToolsSMTPSetting smtp = db.ToolsSMTPSettings.FirstOrDefault();

            return(View(smtp));
        }