//[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);
            //}
        }