public PartialViewResult AddExistingSong(int albumId, int songId) { var songContract = Services.Songs.GetSongWithAdditionalNames(songId); var link = new SongInAlbumEditContract(songContract); return PartialView("SongInAlbumEditRow", link); }
private Song GetSong(SongInAlbumEditContract contract) { if (contract.SongId == song1.Id) return song1; return new Song(new LocalizedString(contract.SongName, ContentLanguageSelection.Unspecified)); }
public void SetUp() { album = new Album(new LocalizedString("Synthesis", ContentLanguageSelection.English)); producer = new Artist(TranslatedString.Create("Tripshots")) { Id = 1, ArtistType = ArtistType.Producer }; vocalist = new Artist(TranslatedString.Create("Hatsune Miku")) { Id = 39, ArtistType = ArtistType.Vocaloid }; producerContract = new ArtistContract(producer, ContentLanguagePreference.Default); vocalistContract = new ArtistContract(vocalist, ContentLanguagePreference.Default); song1 = new Song(new LocalizedString("Nebula", ContentLanguageSelection.English)) { Id = 2 }; song1.AddArtist(producer); album.AddArtist(producer); album.AddArtist(vocalist); var songInAlbum = new SongInAlbum(song1, album, 1, 1); songInAlbumContract = new SongInAlbumEditContract(songInAlbum, ContentLanguagePreference.Default); songInAlbumContract.Artists = new[] { producerContract }; }
private CollectionDiffWithValue<SongInAlbum, SongInAlbum> SyncSongs(SongInAlbumEditContract[] newSongs) { return album.SyncSongs(newSongs, GetSong, UpdateSongArtists); }
private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message) { Assert.IsTrue(Album.TrackPropertiesEqual(first, second), message); Assert.IsTrue(Album.TrackArtistsEqual(first.Song, second), message); }
public void SyncSongs_Removed() { album.AddSong(song1, 1, 1); var newSongs = new SongInAlbumEditContract[0]; var result = SyncSongs(newSongs); Assert.IsNotNull(result, "result is not null"); Assert.IsTrue(result.Changed, "is changed"); Assert.AreEqual(0, result.Added.Length, "none added"); Assert.AreEqual(0, result.Edited.Length, "none edited"); Assert.AreEqual(1, result.Removed.Length, "1 removed"); Assert.AreEqual(0, result.Unchanged.Length, "none unchanged"); AssertEquals(result.Removed.First(), songInAlbumContract, "removed song matches contract"); }
public ActionResult AddNewSong(int albumId, string newSongName) { if (string.IsNullOrWhiteSpace(newSongName)) { log.Warn("Song name for album was null or whitespace"); return HttpStatusCodeResult(HttpStatusCode.BadRequest, "Song name cannot be null or whitespace"); } var link = new SongInAlbumEditContract(newSongName.Trim()); return PartialView("SongInAlbumEditRow", link); }