public async Task <IActionResult> UpdateProjectDataModel(int projectId, int modelId, UpdateProjectDataModelDto projectDataModel) { _logger.LogRequest("Updating data model {modelId} in project {projectId}. Request body: {@projectDataModel}", modelId, projectId, projectDataModel); try { if (modelId != projectDataModel.Id) { _logger.LogWarning("Model Id doesn't match"); return(BadRequest("Model Id doesn't match.")); } var updatedModel = _mapper.Map <ProjectDataModel>(projectDataModel); await _projectDataModelService.UpdateDataModel(updatedModel); _logger.LogResponse("Data model {modelId} in project {projectId} updated", modelId, projectId); return(Ok()); } catch (DuplicateProjectDataModelException ex) { _logger.LogWarning(ex, "Duplicate project data model name"); return(BadRequest(ex.Message)); } }