コード例 #1
0
ファイル: BulkQueryRequest.cs プロジェクト: domialex/Sidekick
        public BulkQueryRequest(Item item, IItemStaticDataProvider staticDataProvider)
        {
            Exchange.Status.Option = StatusType.Online;

            Exchange.Want.Add(staticDataProvider.GetId(item));
            Exchange.Have.Add("chaos");
        }
コード例 #2
0
        public Task <Uri> Handle(GetTradeUriQuery request, CancellationToken cancellationToken)
        {
            Uri baseUri;

            if (request.Item.Rarity == Rarity.Currency && itemStaticDataProvider.GetId(request.Item) != null)
            {
                baseUri = gameLanguageProvider.Language.PoeTradeExchangeBaseUrl;
            }
            else
            {
                baseUri = gameLanguageProvider.Language.PoeTradeSearchBaseUrl;
            }

            return(Task.FromResult(new Uri(baseUri, $"{settings.LeagueId}/{request.QueryId}")));
        }
コード例 #3
0
        public async Task UpdateQuery()
        {
            ShowRefresh = false;
            Results     = new ObservableList <PriceItem>();

            if (Filters != null)
            {
                var settingMods = Item.Category switch
                {
                    Category.Accessory => settings.Price_Mods_Accessory,
                    Category.Armour => settings.Price_Mods_Armour,
                    Category.Flask => settings.Price_Mods_Flask,
                    Category.Jewel => settings.Price_Mods_Jewel,
                    Category.Map => settings.Price_Mods_Map,
                    Category.Weapon => settings.Price_Mods_Weapon,
                    _ => new List <string>(),
                };

                foreach (var filter in Filters.SelectMany(x => x.Filters))
                {
                    if (settingMods.Contains(filter.Id))
                    {
                        if (!filter.Enabled)
                        {
                            settingMods.Remove(filter.Id);
                        }
                    }
                    else
                    {
                        if (filter.Enabled)
                        {
                            settingMods.Add(filter.Id);
                        }
                    }
                }

                await mediator.Send(new SaveSettingsCommand(settings));
            }

            IsFetching = true;
            if (Item.Rarity == Rarity.Currency && itemStaticDataProvider.GetId(Item) != null)
            {
                QueryResult = await tradeSearchService.SearchBulk(Item);
            }
            else
            {
                QueryResult = await tradeSearchService.Search(Item, GetPropertyFilters(), GetModifierFilters());
            }
            IsFetching = false;
            if (QueryResult == null)
            {
                IsError = true;
            }
            else if (QueryResult.Result.Any())
            {
                await LoadMoreData();
                await LoadMoreData();
            }

            if (!string.IsNullOrEmpty(QueryResult.Id))
            {
                Uri = await mediator.Send(new GetTradeUriQuery(Item, QueryResult.Id));
            }
            else
            {
                Uri = null;
            }

            UpdateCountString();
        }