Esempio n. 1
0
		public SongForApiContract(Song song, SongMergeRecord mergeRecord, ContentLanguagePreference languagePreference, SongOptionalFields fields) {
			
			ArtistString = song.ArtistString[languagePreference];
			CreateDate = song.CreateDate;
			DefaultName = song.DefaultName;
			DefaultNameLanguage = song.Names.SortNames.DefaultLanguage;
			FavoritedTimes = song.FavoritedTimes;
			Id = song.Id;
			LengthSeconds = song.LengthSeconds;
			Name = song.Names.SortNames[languagePreference];
			PVServices = song.PVServices;
			RatingScore = song.RatingScore;
			SongType = song.SongType;
			Status = song.Status;
			Version = song.Version;

			if (languagePreference != ContentLanguagePreference.Default || fields.HasFlag(SongOptionalFields.AdditionalNames)) {
				AdditionalNames = song.Names.GetAdditionalNamesStringForLanguage(languagePreference);
			}

			if (languagePreference != ContentLanguagePreference.Default) {
				LocalizedName = song.Names.SortNames[languagePreference];				
			}

			if (fields.HasFlag(SongOptionalFields.Albums))
				Albums = song.Albums.Select(a => new AlbumContract(a.Album, languagePreference)).ToArray();

			if (fields.HasFlag(SongOptionalFields.Artists))
				Artists = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).ToArray();

			if (fields.HasFlag(SongOptionalFields.Names))
				Names = song.Names.Select(n => new LocalizedStringContract(n)).ToArray();

			if (fields.HasFlag(SongOptionalFields.PVs))
				PVs = song.PVs.Select(p => new PVContract(p)).ToArray();

			if (fields.HasFlag(SongOptionalFields.Tags))
				Tags = song.Tags.Usages.Select(u => new TagUsageForApiContract(u)).ToArray();

			if (fields.HasFlag(SongOptionalFields.ThumbUrl))
				ThumbUrl = VideoServiceHelper.GetThumbUrl(song.PVs.PVs);

			if (fields.HasFlag(SongOptionalFields.WebLinks))
				WebLinks = song.WebLinks.Select(w => new WebLinkContract(w)).ToArray();

			if (mergeRecord != null)
				MergedTo = mergeRecord.Target.Id;


		}
Esempio n. 2
0
        public SongForApiContract(Song song, SongMergeRecord mergeRecord, ContentLanguagePreference languagePreference, SongOptionalFields fields)
        {
            ArtistString        = song.ArtistString[languagePreference];
            CreateDate          = song.CreateDate;
            DefaultName         = song.DefaultName;
            DefaultNameLanguage = song.Names.SortNames.DefaultLanguage;
            FavoritedTimes      = song.FavoritedTimes;
            Id            = song.Id;
            LengthSeconds = song.LengthSeconds;
            Name          = song.Names.SortNames[languagePreference];
            PVServices    = song.PVServices;
            RatingScore   = song.RatingScore;
            SongType      = song.SongType;
            Status        = song.Status;
            Version       = song.Version;

            if (languagePreference != ContentLanguagePreference.Default || fields.HasFlag(SongOptionalFields.AdditionalNames))
            {
                AdditionalNames = song.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            }

            if (languagePreference != ContentLanguagePreference.Default)
            {
                LocalizedName = song.Names.SortNames[languagePreference];
            }

            if (fields.HasFlag(SongOptionalFields.Albums))
            {
                Albums = song.OnAlbums.Select(a => new AlbumContract(a, languagePreference)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.Artists))
            {
                Artists = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.Names))
            {
                Names = song.Names.Select(n => new LocalizedStringContract(n)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.PVs))
            {
                PVs = song.PVs.Select(p => new PVContract(p)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.Tags))
            {
                Tags = song.Tags.Usages.Select(u => new TagUsageForApiContract(u)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.ThumbUrl))
            {
                ThumbUrl = VideoServiceHelper.GetThumbUrl(song.PVs.PVs);
            }

            if (fields.HasFlag(SongOptionalFields.WebLinks))
            {
                WebLinks = song.WebLinks.Select(w => new WebLinkContract(w)).ToArray();
            }

            if (mergeRecord != null)
            {
                MergedTo = mergeRecord.Target.Id;
            }
        }
Esempio n. 3
0
        public SongForApiContract(Song song, SongMergeRecord mergeRecord, ContentLanguagePreference languagePreference, SongOptionalFields fields)
        {
            ArtistString        = song.ArtistString[languagePreference];
            CreateDate          = song.CreateDate;
            DefaultName         = song.DefaultName;
            DefaultNameLanguage = song.Names.SortNames.DefaultLanguage;
            FavoritedTimes      = song.FavoritedTimes;
            Id            = song.Id;
            LengthSeconds = song.LengthSeconds;
            Name          = song.Names.SortNames[languagePreference];
            PublishDate   = song.PublishDate;
            PVServices    = song.PVServices;
            RatingScore   = song.RatingScore;
            SongType      = song.SongType;
            Status        = song.Status;
            Version       = song.Version;

            if (fields.HasFlag(SongOptionalFields.AdditionalNames))
            {
                AdditionalNames = song.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            }

            if (fields.HasFlag(SongOptionalFields.Albums))
            {
                Albums = song.OnAlbums.Select(a => new AlbumContract(a, languagePreference)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.Artists))
            {
                Artists = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.Lyrics))
            {
                Lyrics = song.Lyrics.Select(l => new LyricsForSongContract(l)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.MainPicture))
            {
                var thumb = song.GetThumbUrl();

                if (!string.IsNullOrEmpty(thumb))
                {
                    MainPicture = new EntryThumbForApiContract {
                        UrlThumb = thumb
                    };
                }
            }

            if (fields.HasFlag(SongOptionalFields.Names))
            {
                Names = song.Names.Select(n => new LocalizedStringContract(n)).ToArray();
            }

            if (song.HasOriginalVersion)
            {
                OriginalVersionId = song.OriginalVersion.Id;
            }

            if (fields.HasFlag(SongOptionalFields.PVs))
            {
                PVs = song.PVs.Select(p => new PVContract(p)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.ReleaseEvent) && song.ReleaseEvent != null)
            {
                ReleaseEvent = new ReleaseEventForApiContract(song.ReleaseEvent, languagePreference, ReleaseEventOptionalFields.None, null, true);
            }

            if (fields.HasFlag(SongOptionalFields.Tags))
            {
                Tags = song.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).ToArray();
            }

            if (fields.HasFlag(SongOptionalFields.ThumbUrl))
            {
                ThumbUrl = song.GetThumbUrl();
            }

            if (fields.HasFlag(SongOptionalFields.WebLinks))
            {
                WebLinks = song.WebLinks.Select(w => new WebLinkForApiContract(w)).ToArray();
            }

            if (mergeRecord != null)
            {
                MergedTo = mergeRecord.Target.Id;
            }
        }