Exemplo n.º 1
0
        public SongDetailsContract(Song song, ContentLanguagePreference languagePreference,
                                   SongListBaseContract[] pools, ISpecialTags specialTags, IUserPermissionContext userContext, IEntryThumbPersister thumbPersister)
        {
            Song = new SongContract(song, languagePreference);

            AdditionalNames            = song.Names.GetAdditionalNamesStringForLanguage(languagePreference);
            Albums                     = song.OnAlbums.OrderBy(a => a.OriginalReleaseDate.SortableDateTime).Select(a => new AlbumContract(a, languagePreference)).ToArray();
            AlternateVersions          = song.AlternateVersions.Select(s => new SongContract(s, languagePreference, getThumbUrl: false)).OrderBy(s => s.PublishDate).ToArray();
            Artists                    = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
            ArtistString               = song.ArtistString[languagePreference];
            CanEditPersonalDescription = EntryPermissionManager.CanEditPersonalDescription(userContext, song);
            CanRemoveTagUsages         = EntryPermissionManager.CanRemoveTagUsages(userContext, song);
            CreateDate                 = song.CreateDate;
            Deleted                    = song.Deleted;
            LikeCount                  = song.UserFavorites.Count(f => f.Rating == SongVoteRating.Like);
            LyricsFromParents          = song.GetLyricsFromParents(specialTags).Select(l => new LyricsForSongContract(l, false)).ToArray();
            Notes           = song.Notes;
            OriginalVersion = (song.OriginalVersion != null && !song.OriginalVersion.Deleted ?
                               new SongForApiContract(song.OriginalVersion, null, languagePreference, SongOptionalFields.AdditionalNames | SongOptionalFields.ThumbUrl) : null);

            PVs                     = song.PVs.Select(p => new PVContract(p)).ToArray();
            ReleaseEvent            = song.ReleaseEvent != null && !song.ReleaseEvent.Deleted ? new ReleaseEventForApiContract(song.ReleaseEvent, languagePreference, ReleaseEventOptionalFields.None, thumbPersister, true) : null;
            PersonalDescriptionText = song.PersonalDescriptionText;
            var author = song.PersonalDescriptionAuthor;

            PersonalDescriptionAuthor = author != null ? new ArtistForApiContract(author, languagePreference, thumbPersister, true, ArtistOptionalFields.MainPicture) : null;
            SubjectsFromParents       = song.GetCharactersFromParents().Select(c => new ArtistForSongContract(c, languagePreference)).ToArray();
            Tags           = song.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).OrderByDescending(t => t.Count).ToArray();
            TranslatedName = new TranslatedStringContract(song.TranslatedName);
            WebLinks       = song.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

            Pools = pools;
        }
Exemplo n.º 2
0
        public SongDetailsContract(Song song, ContentLanguagePreference languagePreference,
                                   SongListBaseContract[] pools, ISpecialTags specialTags)
        {
            Song = new SongContract(song, languagePreference);

            AdditionalNames   = string.Join(", ", song.AllNames.Where(n => n != Song.Name).Distinct());
            Albums            = song.OnAlbums.Select(a => new AlbumContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
            AlternateVersions = song.AlternateVersions.Select(s => new SongContract(s, languagePreference)).ToArray();
            Artists           = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
            ArtistString      = song.ArtistString[languagePreference];
            CreateDate        = song.CreateDate;
            Deleted           = song.Deleted;
            LikeCount         = song.UserFavorites.Count(f => f.Rating == SongVoteRating.Like);
            LyricsFromParents = song.GetLyricsFromParents(specialTags).Select(l => new LyricsForSongContract(l, false)).ToArray();
            Notes             = song.Notes;
            OriginalVersion   = (song.OriginalVersion != null && !song.OriginalVersion.Deleted ?
                                 new SongForApiContract(song.OriginalVersion, null, languagePreference, SongOptionalFields.AdditionalNames | SongOptionalFields.ThumbUrl) : null);

            PVs            = song.PVs.Select(p => new PVContract(p)).ToArray();
            ReleaseEvent   = song.ReleaseEvent != null ? new ReleaseEventForApiContract(song.ReleaseEvent, ReleaseEventOptionalFields.None) : null;
            Tags           = song.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).OrderByDescending(t => t.Count).ToArray();
            TranslatedName = new TranslatedStringContract(song.TranslatedName);
            WebLinks       = song.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

            Pools = pools;
        }
Exemplo n.º 3
0
		public SongDetailsContract(Song song, ContentLanguagePreference languagePreference) {

			Song = new SongContract(song, languagePreference);

			AdditionalNames = string.Join(", ", song.AllNames.Where(n => n != Song.Name).Distinct());
			Albums = song.Albums.Select(a => new AlbumContract(a.Album, languagePreference)).Distinct().OrderBy(a => a.Name).ToArray();
			AlternateVersions = song.AlternateVersions.Select(s => new SongContract(s, languagePreference)).ToArray();
			Artists = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
			ArtistString = song.ArtistString[languagePreference];
			CreateDate = song.CreateDate;
			Deleted = song.Deleted;
			LikeCount = song.UserFavorites.Count(f => f.Rating == SongVoteRating.Like);
			LyricsFromParents = song.LyricsFromParents.Select(l => new LyricsForSongContract(l)).ToArray();
			Notes = song.Notes;
			OriginalVersion = (song.OriginalVersion != null && !song.OriginalVersion.Deleted ? new SongContract(song.OriginalVersion, languagePreference) : null);

			// TODO (PERF): this might be handled through a special query if the list is long
			Pools =
				song.ListLinks
				.Where(l => l.List.FeaturedCategory == SongListFeaturedCategory.Pools)
				.OrderBy(l => l.List.Name).Take(3)
				.Select(l => new SongListBaseContract(l.List))
				.ToArray();

			ListCount = song.ListLinks.Count;

			PVs = song.PVs.Select(p => new PVContract(p)).ToArray();
			Tags = song.Tags.Usages.Select(u => new TagUsageContract(u)).OrderByDescending(t => t.Count).ToArray();
			TranslatedName = new TranslatedStringContract(song.TranslatedName);
			WebLinks = song.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();

		}
Exemplo n.º 4
0
        public SongDetailsContract(Song song, ContentLanguagePreference languagePreference)
        {
            Song = new SongContract(song, languagePreference);

            AdditionalNames   = string.Join(", ", song.AllNames.Where(n => n != Song.Name).Distinct());
            Albums            = song.Albums.Select(a => new AlbumContract(a.Album, languagePreference)).Distinct().OrderBy(a => a.Name).ToArray();
            AlternateVersions = song.AlternateVersions.Select(s => new SongContract(s, languagePreference)).ToArray();
            Artists           = song.Artists.Select(a => new ArtistForSongContract(a, languagePreference)).OrderBy(a => a.Name).ToArray();
            ArtistString      = song.ArtistString[languagePreference];
            CreateDate        = song.CreateDate;
            Deleted           = song.Deleted;
            LikeCount         = song.UserFavorites.Count(f => f.Rating == SongVoteRating.Like);
            LyricsFromParents = song.LyricsFromParents.Select(l => new LyricsForSongContract(l)).ToArray();
            Notes             = song.Notes;
            OriginalVersion   = (song.OriginalVersion != null && !song.OriginalVersion.Deleted ? new SongContract(song.OriginalVersion, languagePreference) : null);

            // TODO (PERF): this might be handled through a special query if the list is long
            Pools =
                song.ListLinks
                .Where(l => l.List.FeaturedCategory == SongListFeaturedCategory.Pools)
                .OrderBy(l => l.List.Name).Take(3)
                .Select(l => new SongListBaseContract(l.List))
                .ToArray();

            ListCount = song.ListLinks.Count;

            PVs            = song.PVs.Select(p => new PVContract(p)).ToArray();
            Tags           = song.Tags.Usages.Select(u => new TagUsageContract(u)).OrderByDescending(t => t.Count).ToArray();
            TranslatedName = new TranslatedStringContract(song.TranslatedName);
            WebLinks       = song.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();
        }
Exemplo n.º 5
0
        public SongInListContract(SongInList songInList, ContentLanguagePreference languagePreference)
        {
            ParamIs.NotNull(() => songInList);

            Order = songInList.Order;
            Notes = songInList.Notes;
            Song  = new SongContract(songInList.Song, languagePreference);
        }
Exemplo n.º 6
0
		public SongInListContract(SongInList songInList, ContentLanguagePreference languagePreference) {

			ParamIs.NotNull(() => songInList);

			Order = songInList.Order;
			Notes = songInList.Notes;
			Song = new SongContract(songInList.Song, languagePreference);

		}
        public FavoriteSongForUserContract(FavoriteSongForUser favoriteSongForUser, ContentLanguagePreference languagePreference)
        {
            ParamIs.NotNull(() => favoriteSongForUser);

            Id = favoriteSongForUser.Id;
            Rating = favoriteSongForUser.Rating;
            Song = new SongContract(favoriteSongForUser.Song, languagePreference);
            User = new UserBaseContract(favoriteSongForUser.User);
        }
Exemplo n.º 8
0
        public SongEditViewModel(SongContract song, IUserPermissionContext permissionContext,
            SongForEditContract editedSong = null)
            : this()
        {
            ParamIs.NotNull(() => song);

            Song = song;
            AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext);
            EditedSong = editedSong;
        }
Exemplo n.º 9
0
        public SongInListEditContract(SongContract songContract)
        {
            ParamIs.NotNull(() => songContract);

            SongId              = songContract.Id;
            SongName            = songContract.Name;
            SongAdditionalNames = songContract.AdditionalNames;
            SongArtistString    = songContract.ArtistString;

            Notes = string.Empty;
        }
Exemplo n.º 10
0
        private SyndicationItem CreateFeedItem(SongContract song, Func<SongContract, string> contentFac, Func<SongContract, string> urlFac)
        {
            var item = new SyndicationItem(song.Name, new TextSyndicationContent(contentFac(song), TextSyndicationContentKind.Html),
                    VocaUriBuilder.CreateAbsolute(urlFac(song)), song.Id.ToString(), song.CreateDate);

            item.Summary = new TextSyndicationContent(contentFac(song), TextSyndicationContentKind.Html);
            if (!string.IsNullOrEmpty(song.ThumbUrl))
                item.ElementExtensions.Add(new XElement(mediaNs + "thumbnail", new XAttribute("url", song.ThumbUrl)));

            return item;
        }
Exemplo n.º 11
0
		public SongInListEditContract(SongContract songContract) {

			ParamIs.NotNull(() => songContract);

			SongId = songContract.Id;
			SongName = songContract.Name;
			SongAdditionalNames = songContract.AdditionalNames;
			SongArtistString = songContract.ArtistString;

			Notes = string.Empty;

		}
Exemplo n.º 12
0
        public SongOEmbedResponse(SongContract song, int width, int height, string html)
        {
            ParamIs.NotNull(() => song);
            ParamIs.NotNullOrEmpty(() => html);

            author_name = song.ArtistString;
            thumbnail_url = song.ThumbUrl;
            title = song.Name;

            this.height = height;
            this.html = html;
            this.width = width;
        }
        public ArchivedSongVersionDetailsContract(ArchivedSongVersion archived, ArchivedSongVersion comparedVersion, ContentLanguagePreference languagePreference)
        {
            ArchivedVersion   = new ArchivedSongVersionContract(archived);
            ComparedVersion   = comparedVersion != null ? new ArchivedSongVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Song = new SongContract(archived.Song, languagePreference);
            Name = Song.Name;

            ComparableVersions = archived.Song.ArchivedVersionsManager.Versions
                                 .Where(v => v != archived)
                                 .Select(a => new ArchivedObjectVersionContract(a))
                                 .ToArray();

            Versions = ComparedSongsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
        public ArchivedSongVersionDetailsContract(ArchivedSongVersion archived, ArchivedSongVersion comparedVersion, ContentLanguagePreference languagePreference)
        {
            ArchivedVersion = new ArchivedSongVersionContract(archived);
            ComparedVersion = comparedVersion != null ? new ArchivedSongVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Song = new SongContract(archived.Song, languagePreference);
            Name = Song.Name;

            ComparableVersions = archived.Song.ArchivedVersionsManager.Versions
                .Where(v => v != archived)
                .Select(a => new ArchivedObjectVersionContract(a))
                .ToArray();

            Versions = ComparedSongsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
Exemplo n.º 15
0
        public ArchivedSongVersionDetailsContract(ArchivedSongVersion archived, ArchivedSongVersion comparedVersion, IUserPermissionContext permissionContext)
        {
            ParamIs.NotNull(() => archived);

            ArchivedVersion   = new ArchivedSongVersionContract(archived);
            ComparedVersion   = comparedVersion != null ? new ArchivedSongVersionContract(comparedVersion) : null;
            ComparedVersionId = comparedVersion != null ? comparedVersion.Id : 0;
            Song = new SongContract(archived.Song, permissionContext.LanguagePreference);
            Name = Song.Name;

            ComparableVersions = archived.Song.ArchivedVersionsManager
                                 .GetPreviousVersions(archived, permissionContext)
                                 .Select(a => ArchivedObjectVersionWithFieldsContract.Create(a, a.Diff.ChangedFields.Value, a.Reason))
                                 .ToArray();

            Versions = ComparedSongsContract.Create(archived, comparedVersion);

            ComparedVersionId = Versions.SecondId;
        }
Exemplo n.º 16
0
 public ArtistDetailsContract(Artist artist, ContentLanguagePreference languagePreference)
     : base(artist, languagePreference)
 {
     AllNames = string.Join(", ", artist.AllNames.Where(n => n != Name));
     CreateDate = artist.CreateDate;
     Description = artist.Description;
     Draft = artist.Status == EntryStatus.Draft;
     FollowCount = artist.Users.Count;
     Groups = artist.Groups.Select(g => new GroupForArtistContract(g, languagePreference)).OrderBy(g => g.Group.Name).ToArray();
     TranslatedName = new TranslatedStringContract(artist.TranslatedName);
     LatestAlbums = new AlbumContract[] {};
     LatestSongs = new SongContract[] {};
     Members = artist.Members.Select(m => new GroupForArtistContract(m, languagePreference)).OrderBy(a => a.Member.Name).ToArray();
     OwnerUsers = artist.OwnerUsers.Select(u => new UserContract(u.User)).ToArray();
     Pictures = artist.Pictures.Select(p => new EntryPictureFileContract(p)).ToArray();
     Tags = artist.Tags.Usages.Select(u => new TagUsageContract(u)).OrderByDescending(t => t.Count).ToArray();
     TopAlbums = new AlbumContract[] {};
     TopSongs = new SongContract[] {};
     WebLinks = artist.WebLinks.Select(w => new WebLinkContract(w)).OrderBy(w => w.DescriptionOrUrl).ToArray();
 }
Exemplo n.º 17
0
		public WVRListEntryResult(string nicoId, int order, string name, string url, SongContract song) {

			NicoId = nicoId;
			Order = order;
			Name = name;
			Url = url;
			Song = song;

		}
Exemplo n.º 18
0
 public PVForSongContract(PVForSong pv, ContentLanguagePreference languagePreference)
     : base(pv)
 {
     Song = new SongContract(pv.Song, languagePreference);
 }
Exemplo n.º 19
0
        public SongEdit()
        {
            ArtistLinks = new List<ArtistForSongContract>();
            Lyrics = new List<LyricsForSongModel>();
            Names = new NameManagerEditContract();
            OriginalVersion = new SongContract();
            PVs = new List<PVContract>();
            WebLinks = new List<WebLinkDisplay>();

            AllPVTypes = EnumVal<PVType>.Values;
            AllVideoServices = EnumVal<PVService>.Values;
        }
Exemplo n.º 20
0
        public PartialViewResult CreateSongLink(int? songId)
        {
            SongContract song;

            if (songId == null)
                song = new SongContract();
            else
                song = Service.GetSong(songId.Value);

            return PartialView("SongLink", song);
        }
Exemplo n.º 21
0
 public PVForSongContract(PVForSong pv, ContentLanguagePreference languagePreference)
     : base(pv)
 {
     Song = new SongContract(pv.Song, languagePreference);
 }