コード例 #1
0
ファイル: API.Users.cs プロジェクト: amanjaiman/Foundry
        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);
        }
コード例 #2
0
ファイル: API.Users.cs プロジェクト: amanjaiman/Foundry
        // 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);
        }
コード例 #3
0
ファイル: API.Users.cs プロジェクト: amanjaiman/Foundry
        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);
        }
コード例 #4
0
ファイル: API.Users.cs プロジェクト: amanjaiman/Foundry
        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);
        }