UserLogin AuthenticateUser(AuthenicateModel loginCredentials)
        {
            var           response   = new UserLogin();
            var           connString = _configuartion.GetConnectionString("DefaultConnection");
            SqlConnection sql        = new SqlConnection(connString);

            if (sql.State == ConnectionState.Closed)
            {
                sql.Open();
            }
            SqlCommand cmd = new SqlCommand("SP_UserLogin", sql)
            {
                CommandType = CommandType.StoredProcedure
            };

            cmd.Parameters.AddWithValue("@username", loginCredentials.Username);
            cmd.Parameters.AddWithValue("@password", loginCredentials.Password);

            using (var reader = cmd.ExecuteReader())
            {
                if (reader.FieldCount != 1)
                {
                    while (reader.Read())
                    {
                        response = MapToLogin(reader);
                    }
                }
                else
                {
                    response = null;
                }
            }
            sql.Close();
            return(response);
        }
        public IActionResult Login([FromBody] AuthenicateModel login)
        {
            //Return logged user information and token
            UserLogin user = AuthenticateUser(login);

            if (user != null)
            {
                //Check logged user account is locked
                var Userlock = _context.TblUser.Where(a => a.Username.Equals(login.Username)).FirstOrDefault().Lock;
                if (Userlock == true)
                {
                    return(Ok(new { message = "Your account is locked!" }));
                }
                var tokenString = GenerateJWTToken(user);
                return(Ok(new
                {
                    token = tokenString,
                    userDetails = user,
                }));
            }
            return(BadRequest(new { message = "Username or Password is incorrect!" }));
        }