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; }
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; }
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(); }
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(); }
public SongInListContract(SongInList songInList, ContentLanguagePreference languagePreference) { ParamIs.NotNull(() => songInList); Order = songInList.Order; Notes = songInList.Notes; Song = new SongContract(songInList.Song, languagePreference); }
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); }
public SongEditViewModel(SongContract song, IUserPermissionContext permissionContext, SongForEditContract editedSong = null) : this() { ParamIs.NotNull(() => song); Song = song; AllowedEntryStatuses = EntryPermissionManager.AllowedEntryStatuses(permissionContext); EditedSong = editedSong; }
public SongInListEditContract(SongContract songContract) { ParamIs.NotNull(() => songContract); SongId = songContract.Id; SongName = songContract.Name; SongAdditionalNames = songContract.AdditionalNames; SongArtistString = songContract.ArtistString; Notes = string.Empty; }
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; }
public SongInListEditContract(SongContract songContract) { ParamIs.NotNull(() => songContract); SongId = songContract.Id; SongName = songContract.Name; SongAdditionalNames = songContract.AdditionalNames; SongArtistString = songContract.ArtistString; Notes = string.Empty; }
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; }
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; }
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(); }
public WVRListEntryResult(string nicoId, int order, string name, string url, SongContract song) { NicoId = nicoId; Order = order; Name = name; Url = url; Song = song; }
public PVForSongContract(PVForSong pv, ContentLanguagePreference languagePreference) : base(pv) { Song = new SongContract(pv.Song, languagePreference); }
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; }
public PartialViewResult CreateSongLink(int? songId) { SongContract song; if (songId == null) song = new SongContract(); else song = Service.GetSong(songId.Value); return PartialView("SongLink", song); }
public PVForSongContract(PVForSong pv, ContentLanguagePreference languagePreference) : base(pv) { Song = new SongContract(pv.Song, languagePreference); }