protected MediaItemBase(IdentityInfo identityInfo, SizeInfo sizeInfo, CreatorInfo creatorInfo, CatalogInfo catalogInfo, TargetInfo targetInfo, UserInfo userInfo, ThumbnailInfo thumbnailInfo)
 {
     this.name = identityInfo.Name;
     this.summary = identityInfo.Summary;
     this.fromDate = identityInfo.FromDate;
     this.toDate = identityInfo.ToDate;
     this.number = identityInfo.Number;
     this.duration = sizeInfo.Duration;
     this.height = sizeInfo.Height;
     this.width = sizeInfo.Width;
     this.creator = creatorInfo.Location;
     this.creatorName = creatorInfo.Name;
     this.catalog = catalogInfo.Location;
     this.catalogName = catalogInfo.Name;
     this.target = targetInfo.Location;
     this.targetType = targetInfo.Type;
     this.user = userInfo.Location;
     this.userName = userInfo.Name;
     this.thumbnail = thumbnailInfo.Location;
     this.thumbnailData = thumbnailInfo.Data;
     this.type = identityInfo.Type;
     this.location = identityInfo.Location;
 }
Exemple #2
0
 public Clip(IdentityInfo identityInfo, SizeInfo sizeInfo, CreatorInfo creatorInfo, CatalogInfo catalogInfo, TargetInfo targetInfo, UserInfo userInfo, ThumbnailInfo thumbnailInfo)
     : base(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo)
 {
 }
        private void SaveMediaItems(IVideo video)
        {
            try
            {
                var artist = video.GetArtist(securityContext, mediaFactory, mediaItemRepository);
                mediaItemRepository.Save(new List<IArtist> { artist });
                tagRepository.Save(artist.GetTags());

                var album = video.GetAlbum(securityContext, mediaFactory, mediaItemRepository, artist);
                mediaItemRepository.Save(new List<IAlbum> { album });
                tagRepository.Save(album.GetTags());

                var clip = video.GetClip(securityContext, mediaFactory, mediaItemRepository, artist, album);
                mediaItemRepository.Save(new List<IClip> { clip });
                tagRepository.Save(clip.GetTags());

                var clipDate = clip.FromDate > DateTime.MinValue ? clip.FromDate : clip.ToDate;
                if (album.FromDate == DateTime.MinValue && clipDate != DateTime.MinValue)
                {
                    var identityInfo = new IdentityInfo(album.Location, album.Type, album.Name, album.Summary, clipDate, clipDate, album.Number);
                    var sizeInfo = new SizeInfo(album.Duration, album.Height, album.Width);
                    var creatorInfo = new CreatorInfo(album.Creator, album.CreatorName);
                    var catalogInfo = new CatalogInfo(album.Catalog, album.CatalogName);
                    var targetInfo = new TargetInfo(album.Target, album.TargetType);
                    var userInfo = new UserInfo(album.User, album.UserName);
                    var thumbnailInfo = new ThumbnailInfo(album.Thumbnail, album.ThumbnailData);
                    album = new Album(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo);
                    mediaItemRepository.Save(new List<IAlbum> { album });
                }
            }
            catch (Exception ex)
            {
                logger.Error("  CatalogSpider.SaveMediaItems", ex);
            }
        }
        private void SaveMediaItems(IAudio audio)
        {
            try
            {
                var artist = audio.GetArtist(securityContext, mediaFactory, mediaItemRepository);
                mediaItemRepository.Save(new List<IArtist> { artist });
                tagRepository.Save(artist.GetTags());

                var album = audio.GetAlbum(securityContext, mediaFactory, mediaItemRepository, artist);
                mediaItemRepository.Save(new List<IAlbum> { album });
                tagRepository.Save(album.GetTags());

                var track = audio.GetTrack(securityContext, mediaFactory, mediaItemRepository, audioStreamFactory, artist, album);
                mediaItemRepository.Save(new List<ITrack> { track });
                tagRepository.Save(track.GetTags());

                var trackDate = track.FromDate > DateTime.MinValue ? track.FromDate : track.ToDate;
                if (album.FromDate == DateTime.MinValue && trackDate != DateTime.MinValue)
                {
                    var identityInfo = new IdentityInfo(album.Location, album.Type, album.Name, album.Summary, trackDate, trackDate, album.Number);
                    var sizeInfo = new SizeInfo(album.Duration, album.Height, album.Width);
                    var creatorInfo = new CreatorInfo(album.Creator, album.CreatorName);
                    var catalogInfo = new CatalogInfo(album.Catalog, album.CatalogName);
                    var targetInfo = new TargetInfo(album.Target, album.TargetType);
                    var userInfo = new UserInfo(album.User, album.UserName);
                    var thumbnailInfo = new ThumbnailInfo(album.Thumbnail, album.ThumbnailData);
                    album = new Album(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo);
                    mediaItemRepository.Save(new List<IAlbum> { album });
                }

                //if (album.ToDate == DateTime.MinValue && track.ToDate != DateTime.

                if (!HasDefaultThumbnail(track))
                {
                    if (HasDefaultThumbnail(album))
                    {
                        //var fromDate = album.FromDate;
                        //if (album.FromDate == DateTime.MinValue || album.FromDate == DateTime.MaxValue)
                        //{
                        //    fromDate = track.ToDate != DateTime.MinValue && track.ToDate != DateTime.MaxValue ?
                        //        track.ToDate
                        //        : track.FromDate;
                        //}

                        var number = album.Number;
                        if (album.Name.Contains("#") && !album.Name.EndsWith("#"))
                        {
                            var suffix = album.Name.Substring(album.Name.LastIndexOf('#') + 1).Trim();
                            uint.TryParse(suffix, out number);
                        }
                        else if (album.Name.Contains("(") && !album.Name.EndsWith("("))
                        {
                            var suffix = album.Name.Substring(album.Name.LastIndexOf("(") + 1);
                            var cleaned = System.Text.RegularExpressions.Regex.Replace(suffix, "[^0-9]", string.Empty);
                            uint.TryParse(cleaned, out number);
                        }

                        var identityInfo = new IdentityInfo(album.Location, album.Type, album.Name, album.Summary, album.FromDate, album.ToDate, number);
                        var sizeInfo = new SizeInfo(album.Duration, album.Height, album.Width);
                        var creatorInfo = new CreatorInfo(album.Creator, album.CreatorName);
                        var catalogInfo = new CatalogInfo(album.Catalog, album.CatalogName);
                        var targetInfo = new TargetInfo(album.Target, album.TargetType);
                        var userInfo = new UserInfo(album.User, album.UserName);
                        var thumbnailInfo = new ThumbnailInfo(track.Thumbnail, track.ThumbnailData);
                        var updated = new Album(identityInfo, sizeInfo, creatorInfo, catalogInfo, targetInfo, userInfo, thumbnailInfo);
                        mediaItemRepository.Save(new List<IAlbum> { updated });
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error("  SaveMediaItems", ex);
            }
        }