Esempio n. 1
0
        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());
        }
Esempio n. 2
0
 public async Task <ActionResult <bool> > PutTrack(TrackPutRequest request)
 {
     return(Ok(await _repository.Update(_mapper.Map <Track>(request))));
 }