/// <summary> /// Retrieves a list of featured items. Some of the data in response may vary for a given /// country code and language. /// </summary> /// <param name="countryCode"> /// Two letter country code to customise currency and date values. /// </param> /// <param name="language"> /// Full name of the language in english used for string localization e.g. name, /// description. /// </param> /// <param name="token">Propogates notification that operation should be cancelled.</param> /// <returns>A list of featured items in the steam store.</returns> public async Task <FeaturedApps> GetFeaturedAppsAsync(CountryCode countryCode, Language language, CancellationToken token = default) { var queryParameters = new QueryParametersBuilder(); if (countryCode != CountryCode.Unknown) { queryParameters.AppendParameter( "cc", CountryCodeConverter.GetCountryCodeStringValue(countryCode) ); } if (language != Language.Unknown) { queryParameters.AppendParameter("l", language.ToString().ToLower()); } using (var response = await GetRetryPolicy().ExecuteAsync( () => _httpClient.GetAsync(_config.SteamStoreBaseUrl + "/api/featured" + queryParameters.ToString(), token))) { response.EnsureSuccessStatusCode(); var result = await response.Content.ReadAsStringAsync(); var jsonData = JToken.Parse(result); if (jsonData["status"].ToString() != "1") { throw new SteamApiBadRequestException( "Bad request status. Check if you specified right parameters." ); } return(FeaturedApps.FromJson(result)); } }
/// <summary> /// Retrieves a list of featured items via an asynchronous operation.</summary> /// <param name="CountryCode">Two letter country code to customise currency and date values.</param> /// <param name="Language">Full name of the language in english used for string localization e.g. name, description.</param> public static async Task <FeaturedApps> GetAsync(string CountryCode, string Language) { string steamUri = steamBaseUri; steamUri = string.IsNullOrWhiteSpace(CountryCode) ? steamUri : $"{steamUri}?cc={CountryCode}"; if (!string.IsNullOrWhiteSpace(Language)) { steamUri += string.IsNullOrWhiteSpace(CountryCode) ? "?" : "&"; steamUri += $"l={Language.ToLower()}"; } var response = await client.GetAsync(steamUri); if (!response.IsSuccessStatusCode) { return(null); } var result = await response.Content.ReadAsStringAsync(); var jsonData = JToken.Parse(result); if (jsonData["status"].ToString() != "1") { return(null); } return(FeaturedApps.FromJson(result)); }
static async Task Examples() { // Get details for SteamApp with ID 443790 SteamApp steamApp1 = await AppDetails.GetAsync(460810); // Get details for SteamApp with ID 443790 for region US SteamApp steamApp2 = await AppDetails.GetAsync(322330, "US"); // Get details for SteamApp with ID 443790 for region US with strings localized in german SteamApp steamApp3 = await AppDetails.GetAsync(322330, "US", "german"); // Get details for Package with ID 68179 for region PackageInfo package1 = await PackageDetails.GetAsync(68179); // Get details for Package with ID 68179 for region JP PackageInfo package2 = await PackageDetails.GetAsync(68179, "JP"); // Get a list of featured games FeaturedApps featured = await Featured.GetAsync(); // Get a list of featured games for region DE FeaturedApps featured2 = await Featured.GetAsync("DE"); // Get a list of featured games for region DE localized in english FeaturedApps featured3 = await Featured.GetAsync("DE", "english"); // Get a list of featured games grouped by category List <FeaturedCategory> featuredCategories = (await FeaturedCategories.GetAsync()).ToList(); // Get a list of featured games grouped by category for region US List <FeaturedCategory> featuredCategories2 = (await FeaturedCategories.GetAsync("DE")).ToList(); }
private static async Task Examples() { var steamApiClient = new SteamApiClient(); // Get full list of SteamApps. SteamAppBriefInfoList steamAppList = await steamApiClient.GetAppListAsync(); Console.WriteLine($"Got {steamAppList.Apps.Length.ToString()} items."); // Get details for SteamApp with ID 292030 (The Witcher 3: Wild Hunt). SteamApp steamApp1 = await steamApiClient.GetSteamAppAsync(292030); Console.WriteLine($"Got response for {steamApp1.Name}."); // Get details for SteamApp with same ID for region US. SteamApp steamApp2 = await steamApiClient.GetSteamAppAsync(292030, CountryCode.USA); Console.WriteLine($"Got response for {steamApp2.Name}."); // Get details for Package with ID 68179 (Don't Starve Together). PackageInfo package1 = await steamApiClient.GetPackageInfoAsync(68179); Console.WriteLine($"Got response for {package1.Name}."); // Get details for Package with same ID for region JP. PackageInfo package2 = await steamApiClient.GetPackageInfoAsync(68179, CountryCode.Japan); Console.WriteLine($"Got response for {package2.Name}."); // Get a list of featured games. FeaturedApps featured1 = await steamApiClient.GetFeaturedAppsAsync(); Console.WriteLine($"Got {featured1.FeaturedWin.Length.ToString()} items for Windows."); // Get a list of featured games for region DE. FeaturedApps featured2 = await steamApiClient.GetFeaturedAppsAsync(CountryCode.Germany); Console.WriteLine($"Got {featured2.FeaturedWin.Length.ToString()} items for Windows."); // Get a list of featured games grouped by category. FeaturedCategories featuredCategories1 = await steamApiClient.GetFeaturedCategoriesAsync(); Console.WriteLine($"Got {featuredCategories1.TopSellers.Items.Length.ToString()} top sellers items."); // Get a list of featured games grouped by category for region US. FeaturedCategories featuredCategories2 = await steamApiClient.GetFeaturedCategoriesAsync(CountryCode.USA); Console.WriteLine($"Got {featuredCategories2.TopSellers.Items.Length.ToString()} top sellers items."); }
public async Task LoadFeaturedAppsAsync() { var apps = await AppManager.Instance.GetAppsAsync(AppQueryParameters.FeaturedApps()); apps.ForEach(async app => { FeaturedApps.Add(app); try { app.BackgroundImage = await AppManager.Instance.GetAppBackgroundImageAsync(app.Guid); RaisePropertyChanged(nameof(FeaturedApps)); View.SetFlipViewHeight(); } catch { } }); }