public IActionResult Create(Guid productId, [FromBody] ProductOptionViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var product = _productRepository.GetSingle(productId); if (product == null) { return(NotFound()); } var newOption = _mapper.Map <ProductOptionViewModel, ProductOption>(model); newOption.ProductId = productId; newOption.Product = product; _productOptionRepository.Add(newOption); try { _productOptionRepository.Commit(); } catch (DbUpdateException e) { _logger.LogCritical(e.Message); throw e; } var newModel = _mapper.Map <ProductOption, ProductOptionViewModel>(newOption); return(CreatedAtRoute("GetOption", new { productId = productId, id = newModel.Id }, newModel)); }