public (List <User>, bool) GetUsers() { bool returnValue = true; RestRequest request = new RestRequest("/{version}/admin/users", Method.GET); request.Parameters.Clear(); request.AddParameter("version", _ver, ParameterType.UrlSegment); request.AddParameter("page[page]", currPage, ParameterType.QueryString); request.AddParameter("page[per_page]", returnPerPage, ParameterType.QueryString); request.AddHeader("Content-Type", "application/json"); request.AddParameter("Authorization", _token.token_type + " " + _token.access_token, ParameterType.HttpHeader); IRestResponse response = _client.Execute(request); HttpStatusCode statusCode = response.StatusCode; int numericCode = (int)statusCode; if (numericCode != 200) { throw new FoundryException(response.ErrorMessage, numericCode, response.Content); } UserDataJsonList userData = JsonConvert.DeserializeObject <UserDataJsonList>(response.Content); List <User> users = new List <User>(); foreach (UserData data in userData.Data) { User newUser = data.UserAttributes; newUser.ConfigureUserData(data); if (newUser.Location != null) { newUser.Location = GetLocationById(newUser.LocationId); } users.Add(newUser); } MetaJson metaData = JsonConvert.DeserializeObject <MetaJson>(response.Content); Console.WriteLine("Returning " + users.Count + " users. Page " + currPage + " of " + Math.Ceiling((double)metaData.Meta.Count / returnPerPage)); if (currPage * returnPerPage >= metaData.Meta.Count) { returnValue = false; currPage = 1; } else { currPage += 1; } return(users, returnValue); }
// TODO: Implement paging in this public List <User> GetUsersBySearch(Dictionary <SearchTerms, string> searchTerms) { RestRequest request = new RestRequest("{version}/admin/users/", Method.GET); request.Parameters.Clear(); request.AddParameter("version", _ver, ParameterType.UrlSegment); foreach (SearchTerms term in searchTerms.Keys) { request.AddParameter("filter[" + GetDescription(term) + "]", searchTerms[term], ParameterType.QueryString); } request.AddHeader("Content-Type", "application/json"); request.AddParameter("Authorization", _token.token_type + " " + _token.access_token, ParameterType.HttpHeader); IRestResponse response = _client.Execute(request); HttpStatusCode statusCode = response.StatusCode; int numericCode = (int)statusCode; if (numericCode != 200) { throw new FoundryException(response.ErrorMessage, numericCode, response.Content); } UserDataJsonList userData = JsonConvert.DeserializeObject <UserDataJsonList>(response.Content); List <User> users = new List <User>(); foreach (UserData data in userData.Data) { User newUser = data.UserAttributes; newUser.ConfigureUserData(data); if (newUser.Location != null) { newUser.Location = GetLocationById(newUser.LocationId); } users.Add(newUser); } return(users); }
public List <User> GetUsers(int page) { Console.WriteLine("Getting " + returnPerPage + "users on page " + page.ToString() + "..."); RestRequest request = new RestRequest("/{version}/admin/users", Method.GET); request.Parameters.Clear(); request.AddParameter("version", _ver, ParameterType.UrlSegment); request.AddParameter("page[page]", currPage, ParameterType.QueryString); request.AddParameter("page[per_page]", returnPerPage, ParameterType.QueryString); request.AddHeader("Content-Type", "application/json"); request.AddParameter("Authorization", _token.token_type + " " + _token.access_token, ParameterType.HttpHeader); IRestResponse response = _client.Execute(request); HttpStatusCode statusCode = response.StatusCode; int numericCode = (int)statusCode; if (numericCode != 200) { throw new FoundryException(response.ErrorMessage, numericCode, response.Content); } UserDataJsonList userData = JsonConvert.DeserializeObject <UserDataJsonList>(response.Content); List <User> users = new List <User>(); foreach (UserData data in userData.Data) { User newUser = data.UserAttributes; newUser.ConfigureUserData(data); if (newUser.Location != null) { newUser.Location = GetLocationById(newUser.LocationId); } users.Add(newUser); } return(users); }
public List <User> GetUserByEmail(string UserEmail) { Console.WriteLine("Getting User(s) with email: " + UserEmail + "..."); RestRequest request = new RestRequest("{version}/admin/users/", Method.GET); request.Parameters.Clear(); request.AddParameter("version", _ver, ParameterType.UrlSegment); request.AddParameter("filter[email]", UserEmail, ParameterType.QueryString); request.AddHeader("Content-Type", "application/json"); request.AddParameter("Authorization", _token.token_type + " " + _token.access_token, ParameterType.HttpHeader); IRestResponse response = _client.Execute(request); HttpStatusCode statusCode = response.StatusCode; int numericCode = (int)statusCode; if (numericCode != 200) { throw new FoundryException(response.ErrorMessage, numericCode, response.Content); } UserDataJsonList userData = JsonConvert.DeserializeObject <UserDataJsonList>(response.Content); List <User> users = new List <User>(); foreach (UserData data in userData.Data) { User newUser = data.UserAttributes; newUser.ConfigureUserData(data); if (newUser.Location != null) { newUser.Location = GetLocationById(newUser.LocationId); } users.Add(newUser); Console.WriteLine("User Retrieved: " + newUser.FirstName + " " + newUser.LastName + "..."); } return(users); }