Ejemplo n.º 1
0
        private async Task DownloadItems(AuctionHouseResponse ahResponse)
        {
            var counter = 1;
            var itemIds = ahResponse.Auctions
                          .Select(x => x.AuctionedItem.Id)
                          .Distinct()
                          .OrderBy(x => x)
                          .ToList();

            var localItems = await _itemRepository.GetAllItemIdsAsync();

            var missingItems = itemIds.Except(localItems);

            foreach (var itemId in missingItems)
            {
                await Task.Delay(1); // so we don't throttle Blizzard API

                var url = BlizzardApi.Item(_baseUrl, itemId);

                try
                {
                    var item = JsonConvert.DeserializeObject <Item>(await _httpClient.GetStringAsync(url));
                    await _itemRepository.InsertOneAsync(item);

                    Console.WriteLine($"[{counter++}] ID: {item.ItemId}, Name: {item.Name}");
                }
                catch (Exception e)
                {
                    _logger.LogWarning($"Exception occurred while parsing items from Blizzard API: {e.Message}");
                }
            }
        }
        public async Task <BlizzardAccessToken> GetAccessToken()
        {
            var url          = BlizzardApi.AccessToken(_baseUrl);
            var clientId     = _blizzardApiSettings.Value.BlizzardClientId;
            var clientSecret = _blizzardApiSettings.Value.BlizzardClientSecret;

            var parameters = new List <KeyValuePair <string, string> >
            {
                new("grant_type", "client_credentials"),
                new("client_id", clientId),
                new("client_secret", clientSecret)
            };
Ejemplo n.º 3
0
        public async Task UpdateAuctionHouseAuctions()
        {
            var url = BlizzardApi.AuctionHouseAuctions(_baseUrl, 3391);

            var response = await _httpClient.GetAsync(url);

            var ahResponse = JsonConvert.DeserializeObject <AuctionHouseResponse>(await response.Content.ReadAsStringAsync());

            await DownloadItems(ahResponse);

            //await UpdateItemPrices(ahResponse);
            await UpdatePrices(ahResponse);
        }