Пример #1
0
        public async Task <T> GetAsync <T>(string relativeUrl, BlizzardLocaleFlags locale = BlizzardLocaleFlags.EnglishUS, BlizzardNamespace ns = BlizzardNamespace.Dynamic)
        {
            var uri = BlizzardUrlBuilder.GetUrl(Region, relativeUrl, locale, ns);

            var response = await client.GetAsync(uri, token);

#if DEBUG
            var stringValue = await response.Content.ReadAsStringAsync();
#endif

            await using var stream = await response.Content.ReadAsStreamAsync();

            return(await JsonSerializer.DeserializeAsync <T>(stream, deserializeOptions, token));
        }
Пример #2
0
        public static Uri GetUrl(BlizzardRegion region, string relativeUrl, BlizzardLocaleFlags locale = BlizzardLocaleFlags.EnglishUS, BlizzardNamespace ns = BlizzardNamespace.Dynamic)
        {
            var host    = GetRegionHostname(region);
            var builder = new UriBuilder("https", host, -1, relativeUrl);

            if (builder.Query.Length > 0)
            {
                builder.Query += "&";
            }

            builder.Query += "namespace=" + GetNamespaceString(ns, region);

            if (locale != BlizzardLocaleFlags.All && locale != BlizzardLocaleFlags.AllWowLocales)
            {
                builder.Query += "&locale=" + GetLocaleString(locale);
            }

            return(builder.Uri);
        }
Пример #3
0
        public async Task <string> GetJsonAsync(string relativeUrl, BlizzardLocaleFlags locale = BlizzardLocaleFlags.EnglishUS, BlizzardNamespace ns = BlizzardNamespace.Dynamic)
        {
            var uri = BlizzardUrlBuilder.GetUrl(Region, relativeUrl, locale, ns);

            return(await client.GetStringAsync(uri));
        }
Пример #4
0
 internal static string GetLocaleString(BlizzardLocaleFlags locale)
 {
     return(BlizzardLocales.Get(locale).Name);
 }
Пример #5
0
 public BlizzardLocale(string name, BlizzardLocaleFlags flag)
 {
     Name    = name;
     Flag    = flag;
     Culture = CultureInfo.GetCultureInfo(name.Replace("_", "-"));
 }
Пример #6
0
 public static BlizzardLocale Get(BlizzardLocaleFlags locale)
 {
     return(Locales.Single(x => x.Flag == locale));
 }