private void OnDownloadMissingImages(object sender, RoutedEventArgs e) { Task.Factory.StartNew(() => { var downloader = new SymbolDownload(); downloader.Download(PathHelper.SymbolCacheFolder); var setDownload = new SetDownload(NotificationCenter.Instance); setDownload.Download(PathHelper.SetCacheFolder, StaticMagicData.SetDefinitions); }); }
public static void OnImageChanged( DependencyObject d, DependencyPropertyChangedEventArgs e) { var instance = d as SetImage; if (instance != null) { // Trigger download and display var imageLoaded = false; var definition = instance.SelectedSet; var rarity = MagicRarity.Common; var card = instance.SelectedCard; if (card != null) { definition = StaticMagicData.SetDefinitionsBySetCode[card.SetCode]; rarity = card.Rarity ?? MagicRarity.Common; } if (definition != null) { var filePart = SetDownload.MakeSetImageName(definition, rarity); var cardFileName = Path.Combine(PathHelper.SetCacheFolder, "medium", filePart); // instance.imageToolTip.Content = definition.Name; if (File.Exists(cardFileName)) { try { //var uri = new Uri(cardFileName); //var bitmap = new BitmapImage(uri); //bitmap.Freeze(); var bitmap = BitmapImageCache.GetImage(cardFileName); instance.imageControl.Source = bitmap; instance.imageLabel.Text = ""; instance.imageControl.Visibility = Visibility.Visible; instance.imageLabel.Visibility = Visibility.Hidden; imageLoaded = true; } catch (Exception error) { // TODO: error dump imageLoaded = false; } } } if (!imageLoaded) { instance.imageControl.Source = null; instance.imageLabel.Text = definition?.Code; instance.imageControl.Visibility = Visibility.Hidden; instance.imageLabel.Visibility = Visibility.Visible; } } else { instance.imageControl.Visibility = Visibility.Hidden; instance.imageLabel.Visibility = Visibility.Hidden; } }