Exemple #1
0
        /// <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));
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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.");
        }
Exemple #5
0
        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
                {
                }
            });
        }