예제 #1
0
        public PartialViewResult AddExistingSong(int albumId, int songId)
        {
            var songContract = Services.Songs.GetSongWithAdditionalNames(songId);
            var link = new SongInAlbumEditContract(songContract);

            return PartialView("SongInAlbumEditRow", link);
        }
예제 #2
0
		private Song GetSong(SongInAlbumEditContract contract) {

			if (contract.SongId == song1.Id)
				return song1;

			return new Song(new LocalizedString(contract.SongName, ContentLanguageSelection.Unspecified));

		}
예제 #3
0
		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 };

		}
예제 #4
0
		private CollectionDiffWithValue<SongInAlbum, SongInAlbum> SyncSongs(SongInAlbumEditContract[] newSongs) {
			return album.SyncSongs(newSongs, GetSong, UpdateSongArtists);
		}
예제 #5
0
		private void AssertEquals(SongInAlbum first, SongInAlbumEditContract second, string message) {
			
			Assert.IsTrue(Album.TrackPropertiesEqual(first, second), message);
			Assert.IsTrue(Album.TrackArtistsEqual(first.Song, second), message);

		}
예제 #6
0
		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");

		}
예제 #7
0
        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);
        }