/// <summary> /// Initializes a new instance of the <see cref="LazyLoadedTaggedFile" /> class. /// </summary> /// <param name="adapters">The adapters.</param> /// <param name="original">The original.</param> public LazyLoadedTaggedFile(IReferenceAdapters adapters, StorableTaggedFile original) { adapters.Guard("adapters"); original.Guard("original"); this.adapters = adapters; Duration = original.Duration; AlbumId = original.AlbumId; ArtistId = original.ArtistId; Comment = original.Comment; Filename = original.Filename; GenreId = original.GenreId; Id = original.Id; TitleId = original.TitleId; YearId = original.YearId; }
/// <summary> /// Copies the specified from. /// </summary> /// <param name="source">From.</param> /// <param name="directIds">If this value is set to true, take the 'TagReferenceId' fields and copy them directly, if false, try to take the 'TagReference.Id' fields instead.</param> /// <returns></returns> public static StorableTaggedFile Copy(StorableTaggedFile source, bool directIds = true) { return(new StorableTaggedFile { Comment = source.Comment, Filename = source.Filename, TrackNo = source.TrackNo, Id = source.Id, Title = source.Title, Duration = source.Duration, TitleId = directIds || null == source.Title ? source.TitleId : source.Title.Id, Album = source.Album, AlbumId = directIds || null == source.Album ? source.AlbumId : source.Album.Id, Artist = source.Artist, ArtistId = directIds || null == source.Artist ? source.ArtistId : source.Artist.Id, Genre = source.Genre, GenreId = directIds || null == source.Genre ? source.GenreId : source.Genre.Id, Year = source.Year, YearId = directIds || null == source.Year ? source.YearId : source.Year.Id, }); }