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())); }
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); }
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; } } }