public ActionResult Create(User user, string Password, string PasswordConfirm)
        {
            // Реп
            var rep = Locator.GetService<IUsersRepository>();
            if (rep.ExistsUserWithLogin(user.Email))
            {
                ShowError("Такой пользователь уже зарегистрирован");
                return RedirectToAction("Index");
            }

            // Регистрируем
            user.PasswordHash = PasswordUtils.GenerateMD5PasswordHash(Password);
            user.DateRegistred = DateTime.Now;

            rep.Add(user);
            rep.SubmitChanges();

            ShowSuccess(string.Format("Успешно зарегистрирован пользователь {0} {1}. На его почту отправлено письмо с информацией о регистрации", user.GetFio(), user.Email));

            // Уведомляем
            var notificationModel = new
            {
                FIO = user.GetFio(),
                Email = user.Email,
                Password = Password
            };

            NotifyEmail(user, "Регистрация в системе SeoLight",
                new ParametrizedFileTemplate(
                    Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Templates", "Mail", "Register.html"),
                    notificationModel).ToString());

            return RedirectToAction("Index");
        }
 /// <summary>
 /// Авторизирует текущего пользователя
 /// </summary>
 /// <param name="user">Пользователь которого установить как текущего</param>
 /// <param name="remember">Запомнить ли пользователя</param>
 public void AuthorizeUser(User user, bool remember = true)
 {
     CurrentUser = user;
     if (remember)
     {
         // Устанавливаем собственные авторизационные куки
         var authCookie = new HttpCookie("auth");
         authCookie.Values["identity"] = user.Email;
         authCookie.Values["pass"] = user.PasswordHash;
         authCookie.Expires = DateTime.Now.AddDays(365);
         Response.Cookies.Add(authCookie);
     }
 }
        public ActionResult UpdateProfile(User model)
        {
            CurrentUser.FirstName = model.FirstName;
            CurrentUser.LastName = model.LastName;
            CurrentUser.SurName = model.SurName;
            CurrentUser.Phone = model.Phone;
            CurrentUser.DateModified = model.DateModified;
            Locator.GetService<IUsersRepository>().SubmitChanges();

            ShowSuccess("Профиль был успешно сохранен");

            return RedirectToAction("Profile");
        }
		private void detach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = null;
		}
		private void attach_Users(User entity)
		{
			this.SendPropertyChanging();
			entity.Role = this;
		}
 /// <summary>
 /// Уведомляет указанного пользователя посредством Email сообщения
 /// </summary>
 /// <param name="user"></param>
 /// <param name="title"></param>
 /// <param name="content"></param>
 public void Notify(User user, string title, string content)
 {
     Notify(user.Email,title,content);
 }
 /// <summary>
 /// Уведомляем указанного пользователя Email сообщением
 /// </summary>
 /// <param name="user">Пользователь</param>
 /// <param name="subject">Тема сообщения</param>
 /// <param name="content">Содержимое</param>
 public void NotifyEmail(User user, string subject, string content)
 {
     Locator.GetService<IMailNotificationManager>().Notify(user,subject,content);
 }