Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        public void DefaultAlbumCannotBeDeleted()
        {
            repository.Delete <IAlbum>(new List <Uri> {
                unknownLocation
            });
            var check = repository.GetByLocation <IAlbum>(unknownLocation);

            Assert.IsNotNull(check);
            Assert.AreEqual(check.Name, "Unknown");
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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;
            }
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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();
        }