public async Task <ActionResult <BookDTO> > UpdateMusic(int id, [FromBody] SaveBookDTo saveMusicResource) { var validator = new SaveBookResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); var requestIsInvalid = id == 0 || !validationResult.IsValid; if (requestIsInvalid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var musicToBeUpdate = await _musicService.GetMusicById(id); if (musicToBeUpdate == null) { return(NotFound()); } var music = _mapper.Map <SaveBookDTo, Music>(saveMusicResource); await _musicService.UpdateMusic(musicToBeUpdate, music); var updatedMusic = await _musicService.GetMusicById(id); var updatedMusicResource = _mapper.Map <Music, BookDTO>(updatedMusic); return(Ok(updatedMusicResource)); }
public async Task <ActionResult <BookDTO> > CreateMusic([FromBody] SaveBookDTo saveMusicResource) { var validator = new SaveBookResourceValidator(); var validationResult = await validator.ValidateAsync(saveMusicResource); if (!validationResult.IsValid) { return(BadRequest(validationResult.Errors)); // this needs refining, but for demo it is ok } var musicToCreate = _mapper.Map <SaveBookDTo, Music>(saveMusicResource); var newMusic = await _musicService.CreateMusic(musicToCreate); var music = await _musicService.GetMusicById(newMusic.Id); var musicResource = _mapper.Map <Music, BookDTO>(music); return(Ok(musicResource)); }