Beispiel #1
0
        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));
        }
Beispiel #2
0
        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 }));
        }