public async Task <IActionResult> Post(string componentName, [FromBody] SampleViewModel vm) { try { if (ModelState.IsValid) { var newSample = Mapper.Map <Sample>(vm); _repository.AddSample(componentName, creatorName, newSample); if (await _repository.SaveChangesAsync()) { return(Created($"/api/components/{componentName}/samples/{newSample.Name}", Mapper.Map <SampleViewModel>(newSample))); } } } catch (Exception ex) { _logger.LogError("Failed to save new Sample: {0}", ex); return(BadRequest("Failed to save new Sample")); } // Fall through from the validation check Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Validation failed on new Sample")); }