public async Task <ActionResult> UpdateArtist(Guid artistId, [FromBody] ArtistPutRequest artistPutRequest)
        {
            var artistFromRepo = await _artistRepository.GetArtistsAsync(artistId);

            if (!_artistRepository.ArtistExists(artistId))
            {
                var artistToAdd = _mapper.Map <Artist>(artistPutRequest);
                artistToAdd.Id = artistId;
                _artistRepository.AddArtist(artistToAdd);
                await _artistRepository.SaveAsync();

                var artistGetResponse = _mapper.Map <ArtistGetResponse>(artistToAdd);
                return(CreatedAtRoute("GetArtist", new
                {
                    version = HttpContext.GetRequestedApiVersion().ToString(),
                    artistId = artistGetResponse.Id
                },
                                      artistGetResponse));
            }

            _mapper.Map(artistPutRequest, artistFromRepo);

            _artistRepository.UpdateArtist(artistFromRepo);

            await _artistRepository.SaveAsync();

            return(NoContent());
        }
示例#2
0
 public async Task <ActionResult <bool> > PutArtist(ArtistPutRequest request)
 {
     return(Ok(await _repository.Update(_mapper.Map <Artist>(request))));
 }