public ActionResult <TrackDto> Put() { var artistId = new Guid(Request.Query.FirstOrDefault(r => r.Key == "ArtistId").Value.ToString()); var trackId = new Guid(Request.Query.FirstOrDefault(r => r.Key == "TrackId").Value.ToString()); try { var target = _artistBll.GetById(artistId); var track = _trackBll.GetById(trackId); return(Ok(new TrackDto().MapFromModel(_trackBll.Copy(track, target)))); } catch (ArgumentOutOfRangeException exception) { Console.WriteLine(exception); return(NotFound()); } }
public void MergeArtists(ICollection <Artist> artists, Artist newArtist) { var set = new HashSet <Artist>(); var hasDuplicates = artists.Any(a => !set.Add(a)); if (hasDuplicates) { throw new ArgumentException($"Set of merged artists should be unique."); } foreach (var artist in artists) { foreach (var track in artist.TrackList) { _trackBll.Copy(track, newArtist); } } _repository.Save(newArtist); }