public void CanBeReadByTarget() { var check = repository.GetByTarget <ITrack>(track1.Target).FirstOrDefault(); Assert.IsNotNull(check); Assert.AreEqual(track1.Name, check.Name); }
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 IClip GetClip(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist, IAlbum album) { var clip = mediaItemRepository.GetByTarget <IClip>(Location).FirstOrDefault(); if (clip != null) { return(clip); } var name = GetClipName(); var summary = string.Empty; var number = GetClipNumber(); var date = GetDate(); var duration = TimeSpan.FromMinutes(10); //file != null && file.Properties != null ? file.Properties.Duration : TimeSpan.FromMinutes(5); uint height = 480; //file != null && file.Properties != null ? (uint)file.Properties.VideoHeight : 480; uint width = 640; //file != null && file.Properties != null ? (uint)file.Properties.VideoWidth : 640; var builder = new MediaItemBuilder <IClip>(securityContext, mediaFactory) .Identity(name, summary, date, date, number) .Size(duration, height, width) .Creator(artist.Location, artist.Name) .Catalog(album.Location, album.Name) .Target(Location, Type.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 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 override IClip GetClip(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IArtist artist, IAlbum album) { var clip = mediaItemRepository.GetByTarget<IClip>(Location).FirstOrDefault(); if (clip != null) { return clip; } var name = GetClipName(); var summary = string.Empty; var number = GetClipNumber(); var date = GetDate(); var duration = file != null && file.Properties != null ? file.Properties.Duration : TimeSpan.FromMinutes(5); var height = file != null && file.Properties != null ? (uint)file.Properties.VideoHeight : 480; var width = file != null && file.Properties != null ? (uint)file.Properties.VideoWidth : 640; var builder = new MediaItemBuilder<IClip>(securityContext, mediaFactory) .Identity(name, summary, date, date, number) .Size(duration, height, width) .Target(Location, Type.Name); return builder.ToMediaItem(); }
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 override ITrack GetTrack(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IAudioStreamFactory audioStreamFactory, IArtist artist, IAlbum album) { var track = mediaItemRepository.GetByTarget<ITrack>(Location).FirstOrDefault(); //if (track != null) //return track; if (id3v2Tag == null) { if (track != null) return track; var builder = new MediaItemBuilder<ITrack>(securityContext, mediaFactory) .Identity("Unknown", string.Empty) .Creator(artist.Location, artist.Name) .Catalog(album.Location, album.Name) .Target(Location, Type.Name); return builder.ToMediaItem(); } var name = id3v2Tag.Title != null ? id3v2Tag.Title : "Unknown Track"; var summary = id3v2Tag.Lyrics ?? string.Empty; var recordDate = DateTime.MinValue; if (id3v2Tag != null && id3v2Tag.RecordingDate > DateTime.MinValue) recordDate = id3v2Tag.RecordingDate; else if (id3v1Tag != null && id3v1Tag.Year >= DateTime.MinValue.Year && id3v1Tag.Year <= DateTime.MaxValue.Year) recordDate = new DateTime((int)id3v1Tag.Year, 1, 1); var releaseDate = DateTime.MinValue; if (id3v2Tag != null && id3v2Tag.ReleaseDate > DateTime.MinValue) releaseDate = id3v2Tag.ReleaseDate; else if (id3v1Tag != null && id3v1Tag.Year >= DateTime.MinValue.Year && id3v1Tag.Year <= DateTime.MaxValue.Year) releaseDate = new DateTime((int)id3v1Tag.Year, 1, 1); var number = id3v2Tag.Track; var duration = id3v2Tag.Duration; if (duration == TimeSpan.Zero) { using (var audioStream = audioStreamFactory.CreateAudioStream(Location)) { if (audioStream != null) { duration = audioStream.Duration; } } } var thumbnail = Guid.Empty.ToUrn(); var thumbnailData = id3v2Tag.Pictures != null && id3v2Tag.Pictures.Length > 0 ? id3v2Tag.Pictures[0].Data.ToArray() : new byte[0]; var trackId = track != null ? track.Location : Guid.NewGuid().ToUrn(); var fullBuilder = new MediaItemBuilder<ITrack>(securityContext, mediaFactory) .Identity(name, summary, recordDate, releaseDate, number, trackId) .Size(duration) .Creator(artist.Location, artist.Name) .Catalog(album.Location, album.Name) .Target(Location, Type.Name) .Thumbnail(thumbnail, thumbnailData); return fullBuilder.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 override ITrack GetTrack(ISecurityContext securityContext, IMediaFactory mediaFactory, IMetadataRepository mediaItemRepository, IAudioStreamFactory audioStreamFactory, IArtist artist, IAlbum album) { var track = mediaItemRepository.GetByTarget <ITrack>(Location).FirstOrDefault(); //if (track != null) //return track; if (id3v2Tag == null) { if (track != null) { return(track); } var builder = new MediaItemBuilder <ITrack>(securityContext, mediaFactory) .Identity("Unknown", string.Empty) .Creator(artist.Location, artist.Name) .Catalog(album.Location, album.Name) .Target(Location, Type.Name); return(builder.ToMediaItem()); } var name = id3v2Tag.Title != null ? id3v2Tag.Title : "Unknown Track"; var summary = id3v2Tag.Lyrics ?? string.Empty; var recordDate = DateTime.MinValue; if (id3v2Tag != null && id3v2Tag.RecordingDate > DateTime.MinValue) { recordDate = id3v2Tag.RecordingDate; } else if (id3v1Tag != null && id3v1Tag.Year >= DateTime.MinValue.Year && id3v1Tag.Year <= DateTime.MaxValue.Year) { recordDate = new DateTime((int)id3v1Tag.Year, 1, 1); } var releaseDate = DateTime.MinValue; if (id3v2Tag != null && id3v2Tag.ReleaseDate > DateTime.MinValue) { releaseDate = id3v2Tag.ReleaseDate; } else if (id3v1Tag != null && id3v1Tag.Year >= DateTime.MinValue.Year && id3v1Tag.Year <= DateTime.MaxValue.Year) { releaseDate = new DateTime((int)id3v1Tag.Year, 1, 1); } var number = id3v2Tag.Track; var duration = id3v2Tag.Duration; if (duration == TimeSpan.Zero) { using (var audioStream = audioStreamFactory.CreateAudioStream(Location)) { if (audioStream != null) { duration = audioStream.Duration; } } } var thumbnail = Guid.Empty.ToUrn(); var thumbnailData = id3v2Tag.Pictures != null && id3v2Tag.Pictures.Length > 0 ? id3v2Tag.Pictures[0].Data.ToArray() : new byte[0]; var trackId = track != null ? track.Location : Guid.NewGuid().ToUrn(); var fullBuilder = new MediaItemBuilder <ITrack>(securityContext, mediaFactory) .Identity(name, summary, recordDate, releaseDate, number, trackId) .Size(duration) .Creator(artist.Location, artist.Name) .Catalog(album.Location, album.Name) .Target(Location, Type.Name) .Thumbnail(thumbnail, thumbnailData); return(fullBuilder.ToMediaItem()); }