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; } }
public VenueLinkOrVenueNameViewModel(ReleaseEventForApiContract @event) { Event = @event; }