public async Task <ActionResult <RatingModel> > Post(RatingModel model) { try { var existing = await _repository.GetRatingByNameAsync(model.Name); if (existing != null) { return(BadRequest($"The rating for {model.Name} already exists!")); } var rating = _mapper.Map <Rating>(model); _repository.Add(rating); if (await _repository.SaveChangesAsync()) { var location = _linkGenerator.GetPathByAction("Get", "Ratings", new { ratingId = rating.Id }); return(Created(location, _mapper.Map <RatingModel>(rating))); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } return(BadRequest()); }