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