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); }
/// <inheritdoc /> public async Task <ShardStatus> GetShardStatusAsync(Region region) { var json = await _requester.CreateGetRequestAsync(StatusRootUrl, region).ConfigureAwait(false); return(JsonConvert.DeserializeObject <ShardStatus>(json)); }