Example #1
0
		private ImportedAlbumTrack ParseTrack(DataRow dataRow, int nextTrackNum) {

			var track = new ImportedAlbumTrack();

			track.Title = dataRow.GetString(AlbumFileField.Title);
			var trackNumMatch = numRegex.Match(dataRow.GetString(AlbumFileField.Track, string.Empty));
			if (trackNumMatch.Success)
				track.TrackNum = int.Parse(trackNumMatch.Groups[1].Value);
			else
				track.TrackNum = nextTrackNum;

			var artists = new List<string>();

			var composer = dataRow.GetString(AlbumFileField.Composer, string.Empty);

			if (composer != string.Empty)
				artists.Add(composer);

			var artist = dataRow.GetString(AlbumFileField.Artist, string.Empty);

			if (artist != string.Empty) {

				var featPos = artist.IndexOf("feat.", StringComparison.InvariantCultureIgnoreCase);

				if (featPos != -1) {

					var vocaloidName = artist.Substring(featPos + 5, artist.Length - featPos - 5).Trim();
					track.VocalistNames = GetArtistNames(vocaloidName);
					artist = artist.Substring(0, featPos).Trim();

				} else {

					track.VocalistNames = new string[] {};

				}

				artists.AddRange(GetArtistNames(artist));

			}

			track.ArtistNames = artists.Distinct().ToArray();
			return track;

		}
Example #2
0
		public InspectedTrack(ImportedAlbumTrack importedTrack) {
			ImportedTrack = importedTrack;
		}
 public ImportedAlbumDataContract()
 {
     ArtistNames = new string[] {};
     Tracks = new ImportedAlbumTrack[] {};
     VocalistNames = new string[] {};
 }
Example #4
0
 public InspectedTrack(ImportedAlbumTrack importedTrack)
 {
     ImportedTrack = importedTrack;
 }
		private InspectedTrack InspectTrack(ISession session, ImportedAlbumTrack importedTrack, IEnumerable<Artist> artists, Album album) {

			var inspected = new InspectedTrack(importedTrack);
			var existingTrack = album != null ? album.GetSongByTrackNum(importedTrack.DiscNum, importedTrack.TrackNum) : null;

			var existingSong = existingTrack != null && existingTrack.Song != null ? existingTrack.Song
				: FindSong(session, importedTrack.Title, artists);

			if (existingSong != null)
				inspected.ExistingSong = new SongContract(existingSong, PermissionContext.LanguagePreference);

			inspected.Selected = existingTrack != null;

			return inspected;

		}
		private void AssertTrack(string expectedTitle, string expectedVocalists, ImportedAlbumTrack track) {
			Assert.IsNotNull(track, "Track was parsed successfully");
			Assert.AreEqual(expectedTitle, track.Title, "Title");
			Assert.AreEqual(expectedVocalists, string.Join(", ", track.VocalistNames), "Vocalists");
		}
 public ImportedAlbumDataContract()
 {
     ArtistNames   = new string[] {};
     Tracks        = new ImportedAlbumTrack[] {};
     VocalistNames = new string[] {};
 }