public virtual async Task <IActionResult> PartiallyUpdate(int id, JsonPatchDocument <TDtoForUpdate> patchDocument)
        {
            var result = await _crudService.GetAsUpdateDto(id);

            if (!result.Succeeded)
            {
                return(WithStatusCode(result.StatusCode, result.Message));
            }

            var dtoForUpdate = result.Data as TDtoForUpdate;

            patchDocument.ApplyTo(dtoForUpdate, ModelState);

            if (!TryValidateModel(dtoForUpdate))
            {
                return(ValidationProblem(ModelState));
            }

            var updateResult = await _crudService.Update(id, dtoForUpdate);

            if (!updateResult.Succeeded)
            {
                return(WithStatusCode(updateResult.StatusCode, updateResult.Message));
            }

            return(Ok(result.Data));
        }