private void SearchData()
        {
            PART_DataLoadWishlist.Visibility = Visibility.Visible;
            SelectableContent.IsEnabled      = false;

            string GameSearch = SearchElement.Text;
            Task   task       = Task.Run(() =>
            {
                List <HltbData> dataSearch = new List <HltbData>();
                try
                {
                    HowLongToBeatClient howLongToBeatClient = new HowLongToBeatClient();
                    dataSearch = howLongToBeatClient.Search(GameSearch);
                }
                catch (Exception ex)
                {
                    Common.LogError(ex, "HowLongToBeat", "Error on LoadData()");
                }

#if DEBUG
                logger.Debug($"HowLongToBeat - dataSearch: {JsonConvert.SerializeObject(dataSearch)}");
#endif
                Application.Current.Dispatcher.BeginInvoke((Action) delegate
                {
                    lbSelectable.ItemsSource = dataSearch;
                    lbSelectable.UpdateLayout();

                    PART_DataLoadWishlist.Visibility = Visibility.Collapsed;
                    SelectableContent.IsEnabled      = true;
                });
            });
        }
Esempio n. 2
0
        /// <summary>
        /// Search element by name.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonSearch_Click(object sender, RoutedEventArgs e)
        {
            List <HltbData> dataSearch = new HowLongToBeatClient().Search(SearchElement.Text);

            lbSelectable.ItemsSource = dataSearch;
            lbSelectable.UpdateLayout();
        }
Esempio n. 3
0
        private void BtAddData_Click(object sender, RoutedEventArgs e)
        {
            bool AutoAccept       = (bool)cbAutoAccept.IsChecked;
            bool ShowWhenMismatch = (bool)cbShowWhenMismatch.IsChecked;
            bool EnableTag        = (bool)cbEnableTag.IsChecked;

            pbDataLoad.IsIndeterminate = false;
            pbDataLoad.Minimum         = 0;
            pbDataLoad.Value           = 0;
            pbDataLoad.Maximum         = PlayniteApi.Database.Games.Count;

            DataLoad.Visibility   = Visibility.Visible;
            spSettings.Visibility = Visibility.Hidden;

            tokenSource = new CancellationTokenSource();
            ct          = tokenSource.Token;

            int TotalAdded     = 0;
            int TotalAlready   = 0;
            int TotalMultiFind = 0;
            int TotlaNotFind   = 0;

            var taskSystem = Task.Run(() =>
            {
                ct.ThrowIfCancellationRequested();

                foreach (Game game in PlayniteApi.Database.Games)
                {
                    try
                    {
                        if (!HowLongToBeatData.HaveData(game.Id, PluginUserDataPath))
                        {
                            List <HltbData> dataSearch = new HowLongToBeatClient().Search(game.Name);

                            if (dataSearch.Count == 1 && AutoAccept)
                            {
                                HowLongToBeatData.SaveData(game.Id, dataSearch[0], PluginUserDataPath);

                                if (EnableTag)
                                {
                                    HowLongToBeatData.AddAllTag(PlayniteApi, game, PluginUserDataPath);
                                }

                                TotalAdded += 1;
                            }
                            else
                            {
                                TotalMultiFind += 1;
                                if (dataSearch.Count > 0 && ShowWhenMismatch)
                                {
                                    Application.Current.Dispatcher.Invoke(new Action(() =>
                                    {
                                        string FileGameData = PluginUserDataPath + "\\howlongtobeat\\" + game.Id.ToString() + ".json";
                                        new HowLongToBeatSelect(dataSearch, FileGameData, game.Name).ShowDialog();

                                        if (EnableTag)
                                        {
                                            HowLongToBeatData.AddAllTag(PlayniteApi, game, PluginUserDataPath);
                                        }
                                    }));
                                }
                                else
                                {
                                    TotlaNotFind += 1;
                                }
                            }
                        }
                        else
                        {
                            TotalAlready += 1;
                            logger.Debug($"HowLongToBeat - {game.Name}");
                        }
                        Application.Current.Dispatcher.Invoke(new Action(() =>
                        {
                            tbDataLoad.Text   = string.Format(resources.GetString("LOCHowLongToBeatProgressBar"), TotalAdded, TotalAlready, TotlaNotFind);
                            pbDataLoad.Value += 1;
                        }));
                    }
                    catch (Exception ex)
                    {
                        Common.LogError(ex, "HowLongToBeat", $"Error on BtAddData_Click()");
                    }

                    if (ct.IsCancellationRequested)
                    {
                        ct.ThrowIfCancellationRequested();
                    }
                }
            }, tokenSource.Token)
                             .ContinueWith(antecedent =>
            {
                Application.Current.Dispatcher.Invoke(new Action(() => {
                    DataLoad.Visibility   = Visibility.Collapsed;
                    spSettings.Visibility = Visibility.Visible;
                }));
            });
        }