public IActionResult Save([FromBody] JsonElement collateralJson, [FromServices] CollateralDb db) { Collateral collateral = null; try { collateral = CollateralSerializer.DeserializeByType(collateralJson, "type"); } catch (ArgumentException e) { return(BadRequest(new { error = e.Message })); } int rowId = _dao.Save(collateral, db); return(CreatedAtAction(nameof(CollateralController.GetById), nameof(CollateralController).RemoveSuffix("Controller"), new { id = rowId }, collateral)); }
public IActionResult SaveMultiple([FromBody] JsonElement collateralsJson, [FromServices] CollateralDb db) { _logger.LogInformation(collateralsJson.GetRawText()); if (collateralsJson.ValueKind != JsonValueKind.Array) { return(BadRequest(new { error = "provided content is not a collateral array" })); } _logger.LogInformation("collateralsJson is Array json value kind"); List <int> statusCodes = new List <int>(); for (int index = 0, length = collateralsJson.GetArrayLength(); index < length; index++) { JsonElement collateralJson = collateralsJson[index]; _logger.LogInformation(collateralJson.GetRawText()); Collateral collateral = null; try { collateral = CollateralSerializer.DeserializeByType(collateralJson, "Type"); } catch (ArgumentException e) { _logger.LogInformation(e.Message); statusCodes.Add((int)HttpStatusCode.BadRequest); continue; } _logger.LogInformation("going to save the collateral at index " + index); _dao.Save(collateral, db); _logger.LogInformation("collateral at index " + index + " saved"); statusCodes.Add((int)HttpStatusCode.Created); } return(StatusCode((int)HttpStatusCode.MultiStatus, new { statuses = statusCodes })); }