示例#1
0
        public async Task <ActionResult <AlbumResponse> > PostAlbum(AlbumPostRequest request)
        {
            var album = _mapper.Map <Album>(request);
            await _repository.Create(album);

            return(Ok(album.AlbumId));
        }
示例#2
0
        public async Task <ActionResult <AlbumGetResponse> > CreateAlbum([FromBody] AlbumPostRequest albumPostRequest)
        {
            if (albumPostRequest.ArtistId == Guid.Empty || albumPostRequest.GenreId == Guid.Empty)
            {
                throw new ArgumentNullException(nameof(albumPostRequest));
            }

            var albumToAdd = _mapper.Map <Album>(albumPostRequest);

            albumToAdd.Id = Guid.NewGuid();

            _albumRepository.AddAlbum(albumToAdd);
            await _albumRepository.SaveAsync();

            if (albumPostRequest.Tracks.Any())
            {
                foreach (var track in albumPostRequest.Tracks)
                {
                    var trackToAdd = _mapper.Map <Track>(track);
                    trackToAdd.Id      = Guid.NewGuid();
                    trackToAdd.AlbumId = albumToAdd.Id;
                    _albumRepository.AddTrackToAlbum(trackToAdd);
                }
                await _albumRepository.SaveAsync();
            }
            var albumResponse = _mapper.Map <AlbumGetResponse>(albumToAdd);

            return(CreatedAtRoute(
                       "GetAlbum",
                       new
            {
                version = HttpContext.GetRequestedApiVersion().ToString(),
                albumId = albumToAdd.Id
            },
                       albumResponse));
        }