protected override void OnAuthorization(AuthorizationContext filterContext)
 {
     base.OnAuthorization(filterContext);
     if (Request.IsAuthenticated) {
         m_currentUser = new UsersRepository().FindUserByEmail(Email.Parse(User.Identity.Name));
     }
 }
 public void Create(User user)
 {
     using (var connection = DatabaseConnection.CreateConnection()) {
         var command = connection.CreateCommand();
         command.CommandText = "INSERT INTO [dbo].[user](email, name, password) VALUES (@email, @name, @password)";
         command.Parameters.AddWithValue("@email", user.Email.ToString());
         command.Parameters.AddWithValue("@name", user.Name);
         command.Parameters.AddWithValue("@password", user.Password.ToString());
         connection.Open();
         command.ExecuteNonQuery();
     }
 }
        public ActionResult Register(RegistrationUserRequest request)
        {
            if (ModelState.IsValid) {
                var email = Email.Parse(request.Email);
                var user = m_users.FindUserByEmail(email);
                if (user == null) {
                    user = new User();
                    user.Email = email;
                    user.Name = request.Username;
                    user.Password = Password.CreateFromString(request.Password);
                    m_users.Create(user);
                    return RedirectToAction("Login");
                }

                ModelState.AddModelError("email", "Пользователь с таким адресом эоектронной почты уже зарегистрирован.");
            }

            return View(request);
        }
        public User FindUserByEmail(Email email)
        {
            using (var connection = DatabaseConnection.CreateConnection()) {
                var command = connection.CreateCommand();
                command.CommandText = "SELECT * FROM [dbo].[user] WHERE email = @email";
                command.Parameters.AddWithValue("@email", email.ToString());

                connection.Open();
                User result = null;
                using (var reader = command.ExecuteReader(CommandBehavior.CloseConnection)) {
                    if (reader.Read()) {
                        result = new User();
                        result.UserId = reader.GetInt32(0);
                        result.Name = reader.GetString(1);
                        result.Email = Email.Parse(reader.GetString(2));
                        result.Password = new Password(reader.GetString(3));
                    }
                }
                return result;
            }
        }
 public void Create(User user)
 {
     throw new NotImplementedException();
 }
 public TasksRepository(User currentUser)
 {
     if (currentUser == null) throw new ArgumentNullException("currentUser");
     m_currentUser = currentUser;
 }