public bool OnSave(IDataMember member) { member.SetValue("Name", Name); member.SetValue("Description", Description); member.SetValue("Author", Author); if (Thumbnail != null) { if (Thumbnail.ToString().StartsWith("http")) { member.SetValue("Thumbnail", Thumbnail.ToString()); } else { string thumbnailFileName = $"{Name}_thumbnail{Path.GetExtension(Thumbnail.LocalPath)}"; member.SetValue("Thumbnail", thumbnailFileName); string filePath = Path.Combine(NebulaClient.Playlists.ThumbnailCacheDirectory.FullName, thumbnailFileName); if (!System.IO.File.Exists(filePath)) { System.IO.File.Copy(Thumbnail.LocalPath, filePath); } } } foreach (IMediaInfo mediaInfo in Medias) { member.CreateChild("Media", mediaInfo); } return(true); }
public bool OnLoad(IDataMember member) { Name = member.GetString("Name"); Description = member.GetString("Description"); Author = member.GetString("Author"); string thumbnail = member.GetString("Thumbnail"); if (thumbnail.StartsWith("http", StringComparison.InvariantCultureIgnoreCase)) { Thumbnail = Uri.TryCreate(thumbnail, UriKind.RelativeOrAbsolute, out Uri thumbnailUri) ? thumbnailUri : new Uri("https://i.imgur.com/Od5XogD.png"); } else { Thumbnail = new Uri(Path.Combine(NebulaClient.Playlists.ThumbnailCacheDirectory.FullName, thumbnail)); } foreach (IDataMember dataMember in member.GetChilds()) { Type type = Type.GetType(dataMember.GetString("ProviderType")); if (type == null) { continue; } object instance = Activator.CreateInstance(type); if (!(instance is IMediaInfo mediaInfo)) { continue; } mediaInfo.OnLoad(dataMember); Medias.Add(mediaInfo); } return(true); }
public bool OnSave(IDataMember member) { return(false); }
public bool OnLoad(IDataMember member) { return(false); }