private List <SearchResult> SearchGames(string keyword, MetadataProvider provider) { var searchList = new List <SearchResult>(); switch (provider) { case MetadataProvider.Wiki: var wiki = new Wikipedia(); foreach (var page in wiki.Search(keyword)) { searchList.Add(new SearchResult(page.title, page.title, page.snippet)); } break; case MetadataProvider.IGDB: var igdb = new IGDB(); foreach (var page in igdb.Search(keyword)) { searchList.Add(new SearchResult(page.id.ToString(), page.name, string.Empty)); } break; } return(searchList); }
public override string ToString() { List <string> items = new List <string>(8); // up to 8 items in list items.Add(ID.ToJSONString().ToJSONEntry("_id")); if (IGDB != -1) { items.Add(IGDB.ToJSONString().ToJSONEntry("igdb_id")); } items.Add(Genres.ToJSONString().ToJSONEntry("genres")); items.Add(Name.ToJSONString().ToJSONEntry("name")); items.Add(Slug.ToJSONString().ToJSONEntry("slug")); items.Add(Summary.ToJSONString().ToJSONEntry("summary")); items.Add(CoverURL.ToJSONString().ToJSONEntry("cover")); items.Add(Type.ToJSONString().ToJSONEntry("type")); return(items.TOJSONEntry()); /* * string format = "{{" + * "\"_id\": {0}," + * "\"igdb_id\": {1}," + * "\"genres\": {2}," + * "\"name\": {3}," + * "\"slug\": {4}," + * "\"summary\": {5}," + * "\"cover\": {6}," + * "\"type\": {7}" + * "}}"; * return string.Format(format, * ID.ToJSONString(), * IGDB.ToJSONString(), * Genres.ToJSONString(), * Name.ToJSONString(), * Slug.ToJSONString(), * Summary.ToJSONString(), * CoverURL.ToJSONString(), * Type.ToJSONString()); */ }
private void ButtonOK_Click(object sender, RoutedEventArgs e) { var id = ((SearchResult)ListSearch.SelectedItem).Id; Task.Factory.StartNew(() => { TextDownloading.Dispatcher.Invoke(() => { ListSearch.Visibility = Visibility.Hidden; TextDownloading.Visibility = Visibility.Visible; ButtonOK.IsEnabled = false; ButtonCancel.IsEnabled = false; }); try { switch (provider) { case MetadataProvider.Wiki: var wiki = new Wikipedia(); var page = wiki.GetPage(id); MetadataData = wiki.ParseGamePage(page, searchTerm); break; case MetadataProvider.IGDB: var igdb = new IGDB(); MetadataData = igdb.GetParsedGame(UInt64.Parse(id)); break; } } catch (Exception exc) { #if DEBUG logger.Error(exc, "Failed to download metadata from meta page."); #else logger.Warn(exc, "Failed to download metadata from meta page."); #endif Dispatcher.Invoke(() => { PlayniteMessageBox.Show("Didn't found any relevant information about game \"" + searchTerm + "\" on specified page."); }); TextDownloading.Dispatcher.Invoke(() => { ListSearch.Visibility = Visibility.Visible; TextDownloading.Visibility = Visibility.Hidden; ButtonOK.IsEnabled = true; ButtonCancel.IsEnabled = true; }); return; } Dispatcher.Invoke(() => { DialogResult = true; Close(); }); }); }