public async Task <IActionResult> UpdateProjectDataModelProperty(int projectId, int modelId, int propertyId, UpdateProjectDataModelPropertyDto projectDataModelProperty) { _logger.LogRequest("Updating property {propertyId} in data model {modelId}, project {projectId}. Request body: {@projectDataModelProperty}", propertyId, modelId, projectId, projectDataModelProperty); try { if (propertyId != projectDataModelProperty.Id) { _logger.LogWarning("Property Id doesn't match"); return(BadRequest("Property Id doesn't match.")); } var entity = _mapper.Map <ProjectDataModelProperty>(projectDataModelProperty); await _projectDataModelService.UpdateDataModelProperty(entity); _logger.LogResponse("Property {propertyId} in data model {modelId} in project {projectId} updated", propertyId, modelId, projectId); return(Ok()); } catch (DuplicateProjectDataModelPropertyException ex) { _logger.LogWarning(ex, "Duplicate property name"); return(BadRequest(ex.Message)); } }