/// <summary> /// Get Vndb GameCards /// </summary> /// <param name="userDataArray"></param> /// <param name="vndbInfo"></param> private void GetVndbData(UserDataGames[] userDataArray, VnInfo[] vndbInfo) { try { foreach (var entry in userDataArray) { var game = vndbInfo.FirstOrDefault(x => x.VnId == entry.GameId); if (game == null) { continue; } var coverPath = $@"{App.AssetDirPath}\sources\vndb\images\cover\{game.VnId}.jpg"; var rating = NsfwHelper.RawRatingIsNsfw(game.ImageRating); var card = _gameCard(); card.UserDataId = entry.Id; card.ShouldDisplayNsfwContent = !NsfwHelper.UserIsNsfw(game.ImageRating); card.Title = !string.IsNullOrEmpty(entry.CustomGameName) ? entry.CustomGameName : game.Title; card.LastPlayedString = $"Last Played: {TimeDateChanger.GetHumanDate(entry.LastPlayed)}"; card.TotalTimeString = $"Play Time: {TimeDateChanger.GetHumanTime(entry.PlayTime)}"; if (rating == true && File.Exists($"{coverPath}.aes")) { var imgBytes = File.ReadAllBytes($"{coverPath}.aes"); var imgStream = Secure.DecStreamToStream(new MemoryStream(imgBytes)); var imgNsfw = ImageHelper.CreateBitmapFromStream(imgStream); var bi = new BindingImage { Image = imgNsfw, IsNsfw = NsfwHelper.RawRatingIsNsfw(game.ImageRating) }; card.CoverImage = bi; } else { if (File.Exists(coverPath)) { var bi = new BindingImage { Image = ImageHelper.CreateBitmapFromPath(coverPath), IsNsfw = false }; card.CoverImage = bi; } else { var bi = new BindingImage { Image = ImageHelper.CreateEmptyBitmapImage(), IsNsfw = false }; card.CoverImage = bi; } } _gameCollection.Add(card); } } catch (Exception e) { App.Logger.Warning(e, "Failed to create Vndb GameCards"); SentryHelper.SendException(e, null, SentryLevel.Warning); } }
public BindingPickerNode(DesignBindingPicker picker, string nodeName, BindingImage index) : base(nodeName) { this.picker = picker; this.BindingImageIndex = (int) index; }