Example #1
0
        /// <summary>
        /// Sends GET request for any kinds of products in Steam store.
        /// Request can be cancelled by providing cancellation token.
        /// </summary>
        /// <param name="products">What products to include</param>
        /// <param name="callSize">Call size</param>
        /// <param name="cToken">Cancellation token</param>
        /// <returns>SteamProductResponse object</returns>
        public async Task <SteamProductsResponse> GetSteamProductsAsync(IncludeProducts products,
                                                                        ProductCallSize callSize = ProductCallSize.Default, CToken cToken = default)
        {
            if (products.Equals(IncludeProducts.None))
            {
                return(new SteamProductsResponse()
                {
                    Successful = false
                });
            }
            else
            {
                bool callAll = CallSizeToString(callSize, out string size);
                CreateProductUrl(products, size);

                string originalUrl              = UrlBuilder.GetEncodedUrl();
                SteamProductsResponse result    = null;
                Exception             exception = null;

                if (callAll)
                {
                    (result, exception) = await GetAllProducts(result, exception, cToken);
                }
                else
                {
                    (result, exception) = await GetProducts(result, exception, cToken);
                }
                return(WrapResponse(result, originalUrl, exception));
            }
        }
Example #2
0
 /// <summary>
 /// Creates URL for GetSteamProducts-method.
 /// </summary>
 /// <returns>UrlBuilder object</returns>
 private void CreateProductUrl(IncludeProducts products, string count)
 {
     UrlBuilder.Host = HOST;
     UrlBuilder.AppendPath(ISTORE_SERVICE, "GetAppList", "v1");
     UrlBuilder.AppendQuery("key", ApiKey)
     .AppendQuery("max_results", count)
     .AppendQuery("include_games", products.HasFlag(IncludeProducts.Games) ? "1" : "0")
     .AppendQuery("include_dlc", products.HasFlag(IncludeProducts.DLC) ? "1" : "0")
     .AppendQuery("include_software", products.HasFlag(IncludeProducts.Software) ? "1" : "0")
     .AppendQuery("include_hardware", products.HasFlag(IncludeProducts.Harware) ? "1" : "0")
     .AppendQuery("include_videos", products.HasFlag(IncludeProducts.Videos) ? "1" : "0");
 }
        public void MultipleProductTypes_ReturnsRequestedSteamProducts(IncludeProducts products)
        {
            var response = SteamApiClient.GetSteamProductsAsync(products)
                           .Result;

            SleepAfterSendingRequest();

            Assert.NotEmpty(response.Contents);
            Assert.All(response.Contents, product => {
                Assert.True(product.AppId != 0);
                Assert.True(product.LastModified != 0);
            });
        }
 public void Save(ISiteMapOptionKeys settingKeys)
 {
     if (IsDirty)
     {
         StoreSettingCollection settings = Token.Instance.Store.Settings;
         settings.SetValueByKey(settingKeys.CompressedSiteMapFileName, CompressedSiteMapFileName);
         settings.SetValueByKey(settingKeys.SiteMapDataPath, SiteMapDataPath);
         settings.SetValueByKey(settingKeys.SiteMapFileName, SiteMapFileName);
         settings.SetValueByKey(settingKeys.IncludeProducts, IncludeProducts.ToString());
         settings.SetValueByKey(settingKeys.IncludeCategories, IncludeCategories.ToString());
         settings.SetValueByKey(settingKeys.IncludeWebpages, IncludeWebpages.ToString());
         settings.SetValueByKey(settingKeys.OverwriteCompressedFile, OverwriteCompressedFile.ToString());
         settings.SetValueByKey(settingKeys.OverwriteSiteMapFile, OverwriteSiteMapFile.ToString());
         settings.SetValueByKey(settingKeys.DefaultChangeFrequency, DefaultChangeFrequency.ToString());
         settings.SetValueByKey(settingKeys.DefaultUrlPriority, DefaultUrlPriority.ToString());
         settings.Save();
     }
 }