public virtual IAlbum GetAlbum(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist) { IAlbum album = null; var clip = mediaItemRepository.GetByTarget <IClip>(Location).FirstOrDefault(); if (clip != null) { album = mediaItemRepository.GetByLocation <IAlbum>(clip.Catalog); if (album != null) { return(album); } } var albumName = GetAlbumName(); var summary = string.Empty; album = mediaItemRepository.GetByName <IAlbum>(albumName).FirstOrDefault(); if (album != null) { return(album); } var albumNumber = GetAlbumNumber(); var date = GetDate(); var builder = new MediaItemBuilder <IAlbum>(securityContext, mediaFactory) .Identity(albumName, summary, date, date, albumNumber) .Creator(artist.Location, artist.Name); return(builder.ToMediaItem()); }
public override IAlbum GetAlbum(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist) { IAlbum album = null; var track = mediaItemRepository.GetByTarget <ITrack>(Location).FirstOrDefault(); if (track != null) { album = mediaItemRepository.GetByLocation <IAlbum>(track.Catalog); if (album != null) { return(album); } } var albumTitle = "Unknown Album"; var summary = string.Empty; //var albumTag = GetTags().Where(x => x.Type == Id3v2TagType.Album).FirstOrDefault(); if (id3v2Tag != null && id3v2Tag.Album != null) { albumTitle = id3v2Tag.Album; //albumTag.Tuple.ToString(); album = mediaItemRepository.GetByCreatorAndName <IAlbum>(artist.Location, albumTitle); if (album != null) { return(album); } } var builder = new MediaItemBuilder <IAlbum>(securityContext, mediaFactory) .Identity(albumTitle, summary) .Creator(artist.Location, artist.Name); return(builder.ToMediaItem()); }
public override IArtist GetArtist(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository) { IArtist artist = null; var track = mediaItemRepository.GetByTarget <ITrack>(Location).FirstOrDefault(); if (track != null) { artist = mediaItemRepository.GetByLocation <IArtist>(track.Creator); if (artist != null) { return(artist); } } if (id3v2Tag == null || id3v2Tag.JoinedPerformers == null) { return(new MediaItemBuilder <IArtist>(securityContext, mediaFactory).GetDefault()); } var artistName = id3v2Tag.JoinedPerformers; var summary = string.Empty; artist = mediaItemRepository.GetByName <IArtist>(artistName).FirstOrDefault(); if (artist != null) { return(artist); } var builder = new MediaItemBuilder <IArtist>(securityContext, mediaFactory) .Identity(artistName, summary); return(builder.ToMediaItem()); }
public void DefaultAlbumCannotBeDeleted() { repository.Delete <IAlbum>(new List <Uri> { unknownLocation }); var check = repository.GetByLocation <IAlbum>(unknownLocation); Assert.IsNotNull(check); Assert.AreEqual(check.Name, "Unknown"); }
public virtual IArtist GetArtist(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository) { var clip = mediaItemRepository.GetByTarget <IClip>(Location).FirstOrDefault(); if (clip != null) { var artist = mediaItemRepository.GetByLocation <IArtist>(clip.Creator); if (artist != null) { return(artist); } } return(new MediaItemBuilder <IArtist>(securityContext, mediaFactory).GetDefault()); }
public virtual IAlbum GetAlbum(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist) { IAlbum album = null; var clip = mediaItemRepository.GetByTarget<IClip>(Location).FirstOrDefault(); if (clip != null) { album = mediaItemRepository.GetByLocation<IAlbum>(clip.Catalog); if (album != null) return album; } var albumName = GetAlbumName(); var summary = string.Empty; album = mediaItemRepository.GetByName<IAlbum>(albumName).FirstOrDefault(); if (album != null) { return album; } var albumNumber = GetAlbumNumber(); var date = GetDate(); var builder = new MediaItemBuilder<IAlbum>(securityContext, mediaFactory) .Identity(albumName, summary, date, date, albumNumber) .Creator(artist.Location, artist.Name); return builder.ToMediaItem(); }
public virtual IArtist GetArtist(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository) { var clip = mediaItemRepository.GetByTarget<IClip>(Location).FirstOrDefault(); if (clip != null) { var artist = mediaItemRepository.GetByLocation<IArtist>(clip.Creator); if (artist != null) return artist; } return new MediaItemBuilder<IArtist>(securityContext, mediaFactory).GetDefault(); }
public void UpdateThumbnail <T>(Uri id, Uri thumbnail, byte[] thumbnailData) where T : class, IMetadata { if (id == null) { throw new ArgumentNullException("id"); } if (thumbnail == null) { throw new ArgumentNullException("thumbnail"); } if (thumbnailData == null) { throw new ArgumentNullException("thumbnailData"); } try { var item = mediaItemRepository.GetByLocation <T>(id); if (item == null) { return; } var builder = new MediaItemBuilder <T>(securityContext, mediaFactory, item) .Thumbnail(thumbnail, thumbnailData); mediaItemRepository.Save <T>(new List <T> { builder.ToMediaItem() }); //if (typeof(T) == typeof(IArtist) || typeof(T) == typeof(Artist)) //{ // var item = artistRepository.GetByLocation(id); // if (item == null) // return; // var identityInfo = new IdentityInfo(item.Location, item.Type, item.Name, item.Summary, item.FromDate, item.ToDate, item.Number); // var sizeInfo = new SizeInfo(item.Duration, item.Height, item.Width); // var creatorInfo = new CreatorInfo(item.Creator, item.CreatorName); // var catalogInfo = new CatalogInfo(item.Catalog, item.CatalogName); // var targetInfo = new TargetInfo(item.Target, item.TargetType); // var userInfo = new UserInfo(item.User, item.UserName); // var thumbnailInfo = new ThumbnailInfo(thumbnail, thumbnailData); // var updated = new Artist(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo); // artistRepository.Save(new List<IArtist> { updated }); //} //else if (typeof(T) == typeof(IAlbum) || typeof(T) == typeof(Album)) //{ // var item = albumRepository.GetByLocation(id); // if (item == null) // return; // var identityInfo = new IdentityInfo(item.Location, item.Type, item.Name, item.Summary, item.FromDate, item.ToDate, item.Number); // var sizeInfo = new SizeInfo(item.Duration, item.Height, item.Width); // var creatorInfo = new CreatorInfo(item.Creator, item.CreatorName); // var catalogInfo = new CatalogInfo(item.Catalog, item.CatalogName); // var targetInfo = new TargetInfo(item.Target, item.TargetType); // var userInfo = new UserInfo(item.User, item.UserName); // var thumbnailInfo = new ThumbnailInfo(thumbnail, thumbnailData); // var updated = new Album(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo); // albumRepository.Save(new List<IAlbum> { updated }); //} //else if (typeof(T) == typeof(ITrack) || typeof(T) == typeof(Track)) //{ // var item = trackRepository.GetByLocation(id); // if (item == null) // return; // var identityInfo = new IdentityInfo(item.Location, item.Type, item.Name, item.Summary, item.FromDate, item.ToDate, item.Number); // var sizeInfo = new SizeInfo(item.Duration, item.Height, item.Width); // var creatorInfo = new CreatorInfo(item.Creator, item.CreatorName); // var catalogInfo = new CatalogInfo(item.Catalog, item.CatalogName); // var targetInfo = new TargetInfo(item.Target, item.TargetType); // var userInfo = new UserInfo(item.User, item.UserName); // var thumbnailInfo = new ThumbnailInfo(thumbnail, thumbnailData); // var updated = new Track(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo); // trackRepository.Save(new List<ITrack> { updated }); //} //else if (typeof(T) == typeof(IClip) || typeof(T) == typeof(Clip)) //{ // var item = clipRepository.GetByLocation(id); // if (item == null) // return; // var identityInfo = new IdentityInfo(item.Location, item.Type, item.Name, item.Summary, item.FromDate, item.ToDate, item.Number); // var sizeInfo = new SizeInfo(item.Duration, item.Height, item.Width); // var creatorInfo = new CreatorInfo(item.Creator, item.CreatorName); // var catalogInfo = new CatalogInfo(item.Catalog, item.CatalogName); // var targetInfo = new TargetInfo(item.Target, item.TargetType); // var userInfo = new UserInfo(item.User, item.UserName); // var thumbnailInfo = new ThumbnailInfo(thumbnail, thumbnailData); // var updated = new Clip(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo); // clipRepository.Save(new List<IClip> { updated }); //} } catch (Exception ex) { logger.Error(" UpdateTrackThumbnail", ex); throw; } }
public override IAlbum GetAlbum(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist) { IAlbum album = null; var track = mediaItemRepository.GetByTarget<ITrack>(Location).FirstOrDefault(); if (track != null) { album = mediaItemRepository.GetByLocation<IAlbum>(track.Catalog); if (album != null) return album; } var albumTitle = "Unknown Album"; var summary = string.Empty; //var albumTag = GetTags().Where(x => x.Type == Id3v2TagType.Album).FirstOrDefault(); if (id3v2Tag != null && id3v2Tag.Album != null) { albumTitle = id3v2Tag.Album; //albumTag.Tuple.ToString(); album = mediaItemRepository.GetByCreatorAndName<IAlbum>(artist.Location, albumTitle); if (album != null) return album; } var builder = new MediaItemBuilder<IAlbum>(securityContext, mediaFactory) .Identity(albumTitle, summary) .Creator(artist.Location, artist.Name); return builder.ToMediaItem(); }
public override IArtist GetArtist(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository) { IArtist artist = null; var track = mediaItemRepository.GetByTarget<ITrack>(Location).FirstOrDefault(); if (track != null) { artist = mediaItemRepository.GetByLocation<IArtist>(track.Creator); if (artist != null) return artist; } if (id3v2Tag == null || id3v2Tag.JoinedPerformers == null) return new MediaItemBuilder<IArtist>(securityContext, mediaFactory).GetDefault(); var artistName = id3v2Tag.JoinedPerformers; var summary = string.Empty; artist = mediaItemRepository.GetByName<IArtist>(artistName).FirstOrDefault(); if (artist != null) return artist; var builder = new MediaItemBuilder<IArtist>(securityContext, mediaFactory) .Identity(artistName, summary); return builder.ToMediaItem(); }