예제 #1
0
        public async Task OnInit()
        {
            Leagues = null;
            Leagues = await poeTradeClient.Fetch <League>();

            var newLeagues = false;

            using var algorithm = SHA256.Create();
            var leaguesHash = Encoding.UTF8.GetString(
                algorithm.ComputeHash(
                    Encoding.UTF8.GetBytes(
                        JsonSerializer.Serialize(Leagues.Select(x => x.Id).ToList())
                        )
                    )
                );

            if (leaguesHash != settings.LeaguesHash)
            {
                settings.LeaguesHash = leaguesHash;
                settings.Save();
                newLeagues = true;
            }

            if (string.IsNullOrEmpty(settings.LeagueId) || !Leagues.Any(x => x.Id == settings.LeagueId))
            {
                settings.LeagueId = Leagues.FirstOrDefault().Id;
                settings.Save();
                newLeagues = true;
            }

            if (newLeagues && OnNewLeagues != null)
            {
                OnNewLeagues.Invoke();
            }
        }
예제 #2
0
        public async Task OnInit()
        {
            Leagues = null;
            Leagues = await poeApiClient.Fetch <League>();

            if (string.IsNullOrEmpty(configuration.LeagueId))
            {
                configuration.LeagueId = Leagues.FirstOrDefault().Id;
                configuration.Save();
            }
        }
예제 #3
0
        public async Task UpdateQuery()
        {
            Results = new ObservableList <PriceItem>();

            if (Filters != null)
            {
                var saveSettings = false;
                foreach (var filter in Filters.SelectMany(x => x.Filters).Where(x => x.Type == nameof(StatFilter)))
                {
                    if (settings.Modifiers.Contains(filter.Id))
                    {
                        if (!filter.Enabled)
                        {
                            saveSettings = true;
                            settings.Modifiers.Remove(filter.Id);
                        }
                    }
                    else
                    {
                        if (filter.Enabled)
                        {
                            saveSettings = true;
                            settings.Modifiers.Add(filter.Id);
                        }
                    }
                }
                if (saveSettings)
                {
                    settings.Save();
                }
            }

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

            UpdateCountString();
        }
예제 #4
0
        public void Save()
        {
            var keybindProperties = Settings.GetType().GetProperties();

            foreach (var keybind in Keybinds)
            {
                keybindProperties.First(x => x.Name == keybind.Key).SetValue(Settings, keybind.Value);
            }
            ;

            AssignValues(Settings, sidekickSettings);
            uiLanguageProvider.SetLanguage(Settings.Language_UI);
            sidekickSettings.Save();
        }
예제 #5
0
        public void Save()
        {
            var keybindProperties = Settings.GetType().GetProperties();

            foreach (var keybind in Keybinds)
            {
                keybindProperties.First(x => x.Name == keybind.Key).SetValue(Settings, keybind.Value);
            }
            ;

            var leagueHasChanged = Settings.LeagueId != sidekickSettings.LeagueId;

            AssignValues(Settings, sidekickSettings);
            uiLanguageProvider.SetLanguage(Settings.Language_UI);
            sidekickSettings.Save();

            if (leagueHasChanged)
            {
                leagueDataService.LeagueChanged();
            }
        }
예제 #6
0
        private bool SetLanguage(string name)
        {
            var language = AvailableLanguages.Find(x => x.Name == name);

            if (language == null)
            {
                logger.Information("Couldn't find language matching {language}.", name);
                return(false);
            }

            if (Language == null || Language.DescriptionRarity != language.DescriptionRarity)
            {
                logger.Information("Changed active language support to {language}.", language.Name);
                Language = (ILanguage)Activator.CreateInstance(language.ImplementationType);

                settings.Language_Parser = name;
                settings.Save();

                return(true);
            }

            return(false);
        }
예제 #7
0
        public async Task UpdateQuery()
        {
            ShowRefresh = false;
            Results     = new ObservableList <PriceItem>();

            if (Filters != null)
            {
                var saveSettings = false;

                var settingMods = Item.Category switch
                {
                    Category.Accessory => settings.AccessoryModifiers,
                    Category.Armour => settings.ArmourModifiers,
                    Category.Flask => settings.FlaskModifiers,
                    Category.Jewel => settings.JewelModifiers,
                    Category.Map => settings.MapModifiers,
                    Category.Weapon => settings.WeaponModifiers,
                    _ => new List <string>(),
                };

                foreach (var filter in Filters.SelectMany(x => x.Filters).Where(x => x.Type == nameof(StatFilter)))
                {
                    if (settingMods.Contains(filter.Id))
                    {
                        if (!filter.Enabled)
                        {
                            saveSettings = true;
                            settingMods.Remove(filter.Id);
                        }
                    }
                    else
                    {
                        if (filter.Enabled)
                        {
                            saveSettings = true;
                            settingMods.Add(filter.Id);
                        }
                    }
                }
                if (saveSettings)
                {
                    switch (Item.Category)
                    {
                    case Category.Accessory: settings.AccessoryModifiers = settingMods; break;

                    case Category.Armour: settings.ArmourModifiers = settingMods; break;

                    case Category.Flask: settings.FlaskModifiers = settingMods; break;

                    case Category.Jewel: settings.JewelModifiers = settingMods; break;

                    case Category.Map: settings.MapModifiers = settingMods; break;

                    case Category.Weapon: settings.WeaponModifiers = settingMods; break;
                    }
                    ;

                    settings.Save();
                }
            }

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

            UpdateCountString();
        }