示例#1
0
        public async Task <ActionResult <ManipulationResult <FileFormat> > > PatchFileFormatAsync(int id,
                                                                                                  [FromBody] JsonPatchDocument <FileFormat> fileFormatPatch)
        {
            if (fileFormatPatch is null)
            {
                return(BadRequest());
            }

            var userIdClaimed = HttpContext.User.Identity.GetUserIdClaim();

            if (userIdClaimed is null)
            {
                return(BadRequest());
            }

            // create empty fileFormat ..
            var patchedFileFormat = new FileFormat();

            // .. and apply patch on it
            fileFormatPatch.ApplyTo(patchedFileFormat);

            if (!TryValidateModel(patchedFileFormat))
            {
                return(BadRequest("Patch syntax invalid"));
            }

            var patchResult = await _fileFormatService.UpdateFileFormatAsync(userIdClaimed.Value, id, patchedFileFormat);

            if (patchResult is null)
            {
                return(BadRequest("Tried to update non updateable attributes"));
            }

            return(Ok(patchResult));
        }