public async Task <ActionResult> UpdateTrack(Guid trackId, Guid albumId, [FromBody] TrackPutRequest trackPutRequest) { if (!_albumRepository.AlbumExists(albumId)) { return(NotFound()); } if (!_albumRepository.TrackExists(trackId, albumId)) { var trackToAdd = _mapper.Map <Track>(trackPutRequest); trackToAdd.Id = trackId; trackToAdd.AlbumId = albumId; _albumRepository.AddTrackToAlbum(trackToAdd); await _albumRepository.SaveAsync(); return(CreatedAtRoute( "GetTracksByAlbum", new { version = HttpContext.GetRequestedApiVersion().ToString(), albumId = albumId }, null)); } var trackFromRepo = await _albumRepository.GetTrack(trackId); trackFromRepo.AlbumId = albumId; _mapper.Map(trackPutRequest, trackFromRepo); trackFromRepo.AlbumId = albumId; _albumRepository.UpdateTrack(trackFromRepo); await _albumRepository.SaveAsync(); return(NoContent()); }
public async Task <ActionResult <bool> > PutTrack(TrackPutRequest request) { return(Ok(await _repository.Update(_mapper.Map <Track>(request)))); }