コード例 #1
0
        private async Task <List <API.Model.Items.Item> > GetAccountDyes(string apiKey)
        {
            var dyes = await AccountAPI.Dyes(apiKey);

            var colors = await MiscellaneousAPI.Colors(dyes);

            return(await ItemAPI.Items(colors.Select(x => x.Item).ToList()));
        }
コード例 #2
0
        public async Task <List <ValueResult <Mini> > > CalculateValue(List <Mini> items, bool takeHighestValue)
        {
            var miniIDs   = items.Select(x => x.ItemID).ToList();
            var miniItems = await ItemAPI.Items(miniIDs);

            var values = await ValueFactory.CalculateValue(miniItems);

            var result = new List <ValueResult <Mini> >();

            foreach (var item in items)
            {
                var value = values.Where(x => x.Item.ID == item.ItemID).FirstOrDefault();
                result.Add(new ValueResult <Mini> {
                    Item  = item,
                    Value = value?.Value
                });
            }
            return(result);
        }
コード例 #3
0
        public async Task Run(CancellationToken token)
        {
            var page = 0;

            while (true)
            {
                token.ThrowIfCancellationRequested();

                SetProgress("Requesting Page #" + page, 0);
                var pageResult = await ItemAPI.Items(MAX_ITEM_PER_PAGE, page);

                SetProgress("#" + page + ": Retrieving saved items", 10);
                var itemIDs = pageResult.Select(x => x.ID).ToList();
                var dbItems = await DataAPI.GetItems(itemIDs);

                SetProgress("#" + page + ": Comparing saved and retrieved items", 35);
                var newItems = GetNewItems(pageResult, dbItems);

                if (newItems.Count > 0)
                {
                    SetProgress("#" + page + ": Saving " + newItems.Count + " new/changed items", 50);
                    await DataAPI.AddItems(newItems);
                }

                SetProgress("#" + page + ": Requesting ItemListings", 80);
                var listings = await CommerceAPI.ListingsAggregated(pageResult.Select(x => x.ID).ToList());

                SetProgress("#" + page + ": Updating ItemListings", 90);
                await DataAPI.AddItemSellable(pageResult, listings);

                page++;
                if (pageResult.Count < 200)
                {
                    break;
                }
            }
        }