public async Task <IActionResult> CreateAudioBook([FromBody] AudioBookItemModel model)
        {
            try
            {
                var audioBookDomain = _mapper.Map <Domain.AudioBook>(model);
                var audioBookId     = await _audioBookRepository.CreateAudioBook(audioBookDomain);

                return(Ok(audioBookId));
            }
            catch (Exception ex)
            {
                this._telemetry.TrackException(ex);
                var response = LookupResponse <AudioBookItemModel> .BuildErrorResponse("FailedAddAudioBook", "Could not add a new audiobook");

                return(BadRequest(response));
            }
        }
        public async Task <IActionResult> UpdateAudioBook(int id, [FromBody] AudioBookItemModel model)
        {
            if (id != model.AudioBookId)
            {
                return(BadRequest());
            }

            try
            {
                var audioBookDomain = _mapper.Map <Domain.AudioBook>(model);
                var status          = await _audioBookRepository.UpdateAudioBook(audioBookDomain);

                return(Ok(status));
            }
            catch (Exception ex)
            {
                this._telemetry.TrackException(ex);
                var response = LookupResponse <AudioBookItemModel> .BuildErrorResponse("FailedAudioBookUpdate", "Could not update the audiobook");

                return(BadRequest(response));
            }
        }
 private void MapCategories(AudioBookItemModel model, AudioBook audioBook)
 {
     model.Categories = audioBook.AudioBookCategories.Select(c => c.Category.CategoryName).ToList();
 }