public async Task <IActionResult> PostAsync(int musicianId, [FromBody] SavePublicationResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var existingMusician = await _musicianService.GetByIdAsync(musicianId);

            if (!existingMusician.Success)
            {
                return(BadRequest(existingMusician.Message));
            }

            var publication = _mapper.Map <SavePublicationResource, Publication>(resource);

            publication.Musician = existingMusician.Resource;

            var result = await _publicationService.SaveAsync(publication);

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

            var publicationResource = _mapper.Map <Publication, PublicationResource>(result.Resource);

            return(Ok(publicationResource));
        }
        public async Task <IActionResult> PutAsync(int id, [FromBody] SavePublicationResource resource)
        {
            var publication = _mapper.Map <SavePublicationResource, Publication>(resource);
            var result      = await _publicationService.UpdateAsync(id, publication);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }
            var publicationResource = _mapper.Map <Publication, PublicationResource>(result.Resource);

            return(Ok(publicationResource));
        }
        public async Task <IActionResult> PostAsync(SavePublicationResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }
            var publication = _mapper.Map <SavePublicationResource, Publication>(resource);
            var result      = await _publicationService.SaveAsync(publication);

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

            var publicationResource = _mapper.Map <Publication, PublicationResource>(result.Resource);

            return(Ok(publicationResource));
        }