public async Task <ActionResult <AlbumResource> > PutAsync(int id, [FromBody] SaveAlbumResource input)
        {
            //try
            //{
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var album = await _supervisor.GetAlbumByIdAsync(id);

            if (album == null)
            {
                return(NotFound(new ErrorResource("Album not found")));
            }

            album = _mapper.Map <SaveAlbumResource, Album>(input);

            var result = await _supervisor.UpdateAlbumAsync(id, album);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var albumResource = _mapper.Map <Album, AlbumResource>(result.Album);

            return(Ok(albumResource));
            //}
            //catch (Exception ex)
            //{
            //    _logger.LogError(ex.Message);
            //    return StatusCode(500, ex);
            //}
        }
        //[ProducesResponseType(StatusCodes.Status500InternalServerError)]

        public async Task <ActionResult <AlbumResource> > PostAsync([FromBody] SaveAlbumResource input)  //TODO Evaluate if try/catch is needed
        {
            //try
            //{
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var album  = _mapper.Map <SaveAlbumResource, Album>(input);
            var result = await _supervisor.AddAlbumAsync(album);

            if (!result.Success)
            {
                return(BadRequest(new ErrorResource(result.Message)));
            }

            var albumResource = _mapper.Map <Album, AlbumResource>(result.Album);

            return(StatusCode(201, albumResource));
            //}
            //catch (Exception ex)
            //{
            //    _logger.LogError(ex.Message);
            //    return StatusCode(500, ex);
            //}
        }
Пример #3
0
        public async Task <IActionResult> PutAsync(string id, [FromBody] SaveAlbumResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages().ToList()));
            }

            var albums = _mapper.Map <SaveAlbumResource, Album>(resource);
            var result = await _albumService.UpdateAsync(id, albums);

            if (!result.IsSuccess)
            {
                return(BadRequest(result.Message));
            }

            var albumResource = _mapper.Map <Album, AlbumResource>(result.Value);

            return(Ok(albumResource));
        }