public IHttpActionResult Update([FromBody]
                                        JsonPatch.JsonPatchDocument <PositionPatchDto> patchDoc, int id)
        {
            if (patchDoc == null || !patchDoc.HasOperations)
            {
                return(BadRequest(AppSettings.PATCH_REQUEST_ERROR_MESSAGE));
            }
            if (patchDoc.Operations
                .Exists(q => q.Operation != JsonPatch.JsonPatchOperationType.replace))
            {
                return(BadRequest(AppSettings.PATCH_OPERATION_ERROR_MESSAGE));
            }
            if (!ModelState.IsValid)
            {
                string errorMessage = new ModelStateError(_logger).OutputMessage(ModelState);
                return(BadRequest(errorMessage));
            }
            var _partialUpdateDto = _positionService.PrepareForPartialUpdate(id);

            if (_partialUpdateDto == null)
            {
                return(BadRequest(AppSettings.NOT_FOUND_ERROR_MESSAGE));
            }
            try
            {
                patchDoc.ApplyUpdatesTo(_partialUpdateDto.PatchDto);
                _positionService.ApplyPartialUpdate(_partialUpdateDto);
            }
            catch (LogicalException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch (JsonPatch.JsonPatchException ex)
            {
                return(BadRequest(ex.Message));
            }
            catch
            {
                return(BadRequest(AppSettings.INTERNAL_SERVER_ERROR_MESSAGE));
            }
            return(Ok());
        }