示例#1
0
        /// <summary>
        /// Sends an API request for user information.
        /// </summary>
        /// <param name="handle">The handle of the requested user.</param>
        /// <returns>An instance of <see cref="IUser"/> containing the information about the requested user.</returns>
        public async Task <IUser> GetUser(string handle)
        {
            var requestUrl = string.Format(ApiRequestUrl, _apiKey, $"user/{handle}");

            using var client = new HttpClient();
            var response = await client.GetAsync(requestUrl);

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception(response.ReasonPhrase);
            }

            var content = await response.Content.ReadAsStringAsync();

            var data             = JObject.Parse(content);
            var profileData      = data["data"]?["profile"];
            var organizationData = data["data"]?["organization"];

            var user = new StarCitizenUser
            {
                Profile      = ParseUserProfile(profileData),
                Organization = ParseUserOrganizationInfo(organizationData)
            };

            return(user);
        }
        public async Task <StarCitizenUser> GetUser(string handle)
        {
            var requestUrl = string.Format(_config.ApiRequestUrl, _config.ApiKey, $"user/{handle}");
            var content    = await _httpService.Get(requestUrl);

            var data             = JObject.Parse(content);
            var profileData      = data["data"]?["profile"];
            var organizationData = data["data"]?["organization"];

            var user = new StarCitizenUser
            {
                Profile      = ParseUserProfile(profileData),
                Organization = ParseUserOrganizationInfo(organizationData)
            };

            return(user);
        }