private async Task <SteamMarketResource> DoCheckupRequest(int appId)
        {
            var checkupQuery   = new SteamMarketQuery(0, 1, "quantity", appId);
            var checkupRequest = await MakeRequest(checkupQuery);

            return(checkupRequest);
        }
        private async Task <SteamMarketResource> MakeRequest(SteamMarketQuery query)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, _baseUrl + query.ToString());

            var res       = await new HttpClient().SendAsync(request);
            var resString = await res.Content.ReadAsStringAsync();

            var resObj = SteamMarketResource.FromJson(resString);

            return(resObj);
        }
        public async Task <List <SteamMarketItem> > Scrape(int appId)
        {
            var checkupRequest = await DoCheckupRequest(appId);

            if (!checkupRequest.Success)
            {
                throw new NoneExpectedResultException("The API call responsed with a none success statuscode");
            }

            var items = new List <SteamMarketItem>();

            for (int i = 0; i < (checkupRequest.TotalCount / PageSize) + 1; i++)
            {
                var query   = new SteamMarketQuery(i * PageSize, PageSize, "quantity", appId);
                var request = await MakeRequest(query);

                if (!request.Success)
                {
                    throw new NoneExpectedResultException("The API call responsed with a none success statuscode");
                }

                var document = ParseDocument(request.Results);

                var elements = document.QuerySelectorAll("a.market_listing_row_link");

                foreach (var element in elements)
                {
                    var img  = element.FirstElementChild.FirstElementChild.GetAttribute("src");
                    var name = element.QuerySelector("div.market_listing_item_name_block span").TextContent;
                    items.Add(new SteamMarketItem
                    {
                        ImageSrc = img,
                        Name     = name
                    });
                }
            }

            return(items);
        }