コード例 #1
0
        public async Task <CharacterProfile> GetCharacterByIdAsync(string lodestoneId, bool extended)
        {
            var extendedResponse = extended ? 1 : 0;

            var characterProfileInCache = _cache.Get <string, CharacterProfile>(string.Format(CharacterCache, lodestoneId, extendedResponse));

            if (characterProfileInCache != null)
            {
                return(characterProfileInCache);
            }

            var fetchUrl     = string.Format(CharacterFetchUrl, lodestoneId);
            var jsonResponse = await _requester.CreateGetRequestAsync(
                fetchUrl, new List <string> {
                $"extended={extendedResponse}", $"data=AC,FR,FC,FCM,PVP"
            }).ConfigureAwait(false);

            var queryResult = JsonConvert.DeserializeObject <CharacterProfile>(jsonResponse);

            if (queryResult.Character != null)
            {
                _cache.Add(string.Format(CharacterCache, lodestoneId, extendedResponse), queryResult, CharacterTtl);
                return(queryResult);
            }
            return(null);
        }
コード例 #2
0
        /// <inheritdoc />
        public async Task <ShardStatus> GetShardStatusAsync(Region region)
        {
            var json = await _requester.CreateGetRequestAsync(StatusRootUrl, region).ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <ShardStatus>(json));
        }