예제 #1
0
        // SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TestDB"].ConnectionString);

        public int saveData(StudentData studentModel)
        {
            int result = 0;

            try
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    SqlCommand cmd = new SqlCommand("usp_Insert_Student", connection);
                    connection.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@FirstName", studentModel.FirstName);
                    cmd.Parameters.AddWithValue("@LastName", studentModel.LastName);
                    cmd.Parameters.AddWithValue("@EmailAddress", studentModel.Email);
                    cmd.Parameters.AddWithValue("@PocketMoney", studentModel.PckMoney);
                    cmd.Parameters.AddWithValue("@password", HashPassword.Encrypt(studentModel.Password));
                    result = cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                result = 0;
            }
            return(result);
        }
예제 #2
0
        public IActionResult Login([FromBody] UserAuthenticateData login)
        {
            IActionResult response = Unauthorized();
            User          user;

            if (login.IsUsername)
            {
                user = UserRepository.GetUserByName(login.Username);
            }
            else
            {
                user = UserRepository.GetUserByEmail(login.Username);
            }

            if (user != null)
            {
                string hashedPass = HashPassword.Encrypt(login.Password);
                if (user.Password.Equals(hashedPass))
                {
                    var tokenString = GenerateJSONWebToken(user);
                    response = Ok(new { token = tokenString, info = user });
                }
                else
                {
                    response = Ok(new { Error = "Incorrect password." });
                }
            }
            else
            {
                response = Ok(new { Error = "User with that username not found" });
            }
            return(response);
        }
예제 #3
0
        public IActionResult Register([FromBody] UserRegisterData data)
        {
            IActionResult response = Unauthorized();
            User          user     = UserRepository.GetUserByEmail(data.Email);

            if (user != null)
            {
                response = Ok(new { Error = "This email is already taken." });
            }
            user = UserRepository.GetUserByName(data.Username);
            if (user != null)
            {
                response = Ok(new { Error = "This username is already taken." });
            }
            if (user == null)
            {
                // adding user to db
                user = new User
                {
                    Username = data.Username,
                    Email    = data.Email,
                    Password = HashPassword.Encrypt(data.Password)
                };
                UserRepository.Insert(user);
                response = Ok(new { token = GenerateJSONWebToken(user), info = user });
            }
            return(response);
        }
예제 #4
0
        public IActionResult Fbsignup([FromBody] UserRegisterData data)
        {
            User   user     = UserRepository.GetUserByEmail(data.Email);
            string password = HashPassword.Encrypt(data.Password, data.Email + data.Username);

            if (user != null)
            {
                return(Login(new UserAuthenticateData
                {
                    Username = data.Email,
                    IsUsername = false,
                    Password = password
                }));
            }
            else
            {
                string username = data.Username;
                Random random   = new Random();
                user = UserRepository.GetUserByName(username);

                while (user != null)
                {
                    username = data.Username + random.Next();

                    user = UserRepository.GetUserByName(username);
                }
                data.Username = username;
                data.Password = password;
                return(Register(data));
            }
        }
예제 #5
0
        public IActionResult UpdatePassword([FromRoute] long id, [FromBody] Data data)
        {
            IActionResult response = Unauthorized();

            if (ModelState.IsValid)
            {
                User entity = UserRepository.GetById(id);
                if (entity != null)
                {
                    string oldHashed = HashPassword.Encrypt(data.Old);
                    if (entity.Password.Equals(oldHashed))
                    {
                        string newHashed = HashPassword.Encrypt(data.New);
                        if (!oldHashed.Equals(newHashed))
                        {
                            entity.Password = newHashed;
                            User updated = UserRepository.Update(entity);
                            int  count   = UserRepository.NumbOfModules(entity.UserId);
                            response = Ok(new { UpdatedUser = updated, CountOfModules = count });
                        }
                        else
                        {
                            response = Ok(new { Error = "Equals Passwords." });
                        }
                    }
                    else
                    {
                        response = Ok(new { Error = "This id has another password." });
                    }
                }
                else
                {
                    response = Ok(new { Error = "Id not exist." });
                }
            }
            return(response);
        }