public IActionResult CreateSong([FromBody] SongForCreation songForCreation) { if (songForCreation == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(new UnprocessableEntityObjectResult(ModelState)); } var mappedSong = Mapper.Map <Entities.Song>(songForCreation); _sprotifyRepository.AddSong(mappedSong); if (!_sprotifyRepository.Save()) { throw new Exception("Adding a song failed."); } var createdSongToReturn = Mapper.Map <Models.Song>(mappedSong); return(CreatedAtRoute("GetSong", new { songId = mappedSong.Id }, createdSongToReturn)); }