private void InitializeData(GameCopy game) { GameDevelopers = new ObservableCollection <Developer>(game.Developers.Distinct()); GameLinks = new ObservableCollection <string>(game.Links.Distinct()); GamePlatforms = new ObservableCollection <Platform>(game.Platforms.Distinct()); GameLanguages = new ObservableCollection <CultureInfo>( game.TwoLetterIsoLanguageName.Distinct().Select(lang => CultureInfo.GetCultureInfo(lang))); GameItems = new ObservableCollection <ItemViewModel>(game.Items.Select(ItemViewModel.FromItem)); GameScreenshots = new ObservableCollection <ScreenshotViewModel>( game.Screenshots .Select(HomeDirectoryHelpers.ToAbsolutePath) .Select(ScreenshotViewModel.FromPath) ); GameCoverImage = game.CoverImage == null ? null : ScreenshotViewModel.FromPath(HomeDirectoryHelpers.ToAbsolutePath(game.CoverImage)); }
private static async Task <string?> DownloadCoverArt(string destinationDirectory, ScreenshotViewModel?gameCoverImage) { if (gameCoverImage == null) { return(null); } var url = gameCoverImage.Url; if (new Uri(url).IsFile) { return(url); } var path = await new ImageDownloader(Application.Current.ScraperWebClient()) .DownloadCoverArt(destinationDirectory, url); return(HomeDirectoryHelpers.ToRelativePath(path)); }