public async Task <IActionResult> Create([FromBody] JObject jsonObject) { var requestId = Guid.NewGuid().ToString(); _logger.LogInformation($"RequestID:{requestId} - Tasks_Create called."); try { if (jsonObject == null) { _logger.LogError($"RequestID:{requestId} - Tasks_Create error: null"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: null", requestId); return(BadRequest(errorResponse)); } var modelObject = JsonConvert.DeserializeObject <TasksModel>(jsonObject.ToString(), new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); //TODO: P2 Refactor into Guard if (String.IsNullOrEmpty(modelObject.Name)) { _logger.LogError($"RequestID:{requestId} - Tasks_Create error: invalid name"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: invalid name", requestId); return(BadRequest(errorResponse)); } var resultCode = await _tasksService.CreateItemAsync(modelObject, requestId); if (resultCode != ApplicationCore.StatusCodes.Status201Created) { _logger.LogError($"RequestID:{requestId} - Tasks_Create error: {resultCode.Name}"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: {resultCode.Name}", requestId); return(BadRequest(errorResponse)); } var location = "/Tasks/Create/new"; // TODO: Get the id from the results but need to wire from factory to here return(Created(location, $"RequestId: {requestId} - Tasks created.")); } catch (Exception ex) { _logger.LogError($"RequestID:{requestId} Tasks_Create error: {ex.Message}"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: {ex} ", requestId); return(BadRequest(errorResponse)); } }
public async Task <IActionResult> Create([FromBody] JObject jsonObject) { var requestId = Guid.NewGuid().ToString(); _logger.LogInformation($"RequestID:{requestId} - Tasks_Create called."); try { if (jsonObject == null) { _logger.LogError($"RequestID:{requestId} - Tasks_Create error: null"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: null", requestId); return(BadRequest(errorResponse)); } var modelObject = JsonConvert.DeserializeObject <TasksModel>(jsonObject.ToString(), new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); //TODO: P2 Refactor into Guard if (String.IsNullOrEmpty(modelObject.Name)) { _logger.LogError($"RequestID:{requestId} - Tasks_Create error: invalid name"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: invalid name", requestId); return(BadRequest(errorResponse)); } JObject result = await _tasksService.CreateItemAsync(modelObject, requestId); return(new CreatedResult(result.SelectToken("id").ToString(), null)); } catch (Exception ex) { _logger.LogError($"RequestID:{requestId} Tasks_Create error: {ex.Message}"); var errorResponse = JsonErrorResponse.BadRequest($"Tasks_Create error: {ex} ", requestId); return(BadRequest(errorResponse)); } }