public IHttpActionResult Post(Guid id, [FromBody] ProductOptionDto productOption) { try { if (productOption == null || productOption.ProductId != id) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!_productRepository.ProductExists(id)) { return(NotFound()); } var productOptionToAdd = Mapper.Map <ProductOption>(productOption); _productOptionRepository.AddProductOptionToProduct(productOptionToAdd, id); if (!_productOptionRepository.Save()) { return(new ResponseMessageResult(new HttpResponseMessage(HttpStatusCode.InternalServerError))); } return(new ResponseMessageResult(new HttpResponseMessage(HttpStatusCode.Created))); } catch (Exception ex) { return(new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message))); } }