public async Task <IActionResult> Substring(int id, int start, int length)
        {
            var dataManager = await getDataManager();

            ModifyDataResultEnum operationResult;
            var res = dataManager.resourceRepository.GetSubstring(id, start, length, out operationResult);

            if (ModifyDataResultHelper.IsResultError(operationResult))
            {
                return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
            }
            return(Ok(res));
        }
        public async Task <IActionResult> Get(int id)
        {
            var dataManager = await getDataManager();

            ModifyDataResultEnum operationResult;
            var res = dataManager.resourceRepository.GetById(id, out operationResult);

            if (ModifyDataResultHelper.IsResultError(operationResult))
            {
                return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
            }
            return(Ok(res));
        }
        public async Task <IActionResult> ReplaceSubstr(int id, [FromForm] string oldVal, [FromForm] string newVal)
        {
            var dataManager = await getDataManager(true);

            try
            {
                ModifyDataResultEnum operationResult;
                var resultVal = dataManager.resourceRepository.UpdateReplaceSubstr(id, oldVal, newVal, out operationResult);

                if (ModifyDataResultHelper.IsResultError(operationResult))
                {
                    unlockDataObject();
                    return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
                }
                updateDataObject(dataManager);
                return(Ok(resultVal));
            }
            catch (Exception ex)
            {
                unlockDataObject();
                throw ex;
            }
        }
        public async Task <IActionResult> InsertSubstr(int id, [FromForm] UpdateInsertSubstrParameter p)
        {
            var dataManager = await getDataManager(true);

            try
            {
                ModifyDataResultEnum operationResult;
                var resultVal = dataManager.resourceRepository.UpdateInsertSubstr(id, p.value, p.updateType, out operationResult, p.index);

                if (ModifyDataResultHelper.IsResultError(operationResult))
                {
                    unlockDataObject();
                    return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
                }
                updateDataObject(dataManager);
                return(Ok(resultVal));
            }
            catch (Exception ex)
            {
                unlockDataObject();
                throw ex;
            }
        }
        public async Task <IActionResult> Delete(int id)
        {
            var dataManager = await getDataManager(true);

            try
            {
                ModifyDataResultEnum operationResult;
                operationResult = dataManager.resourceRepository.Delete(id);

                if (ModifyDataResultHelper.IsResultError(operationResult))
                {
                    unlockDataObject();
                    return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
                }
                updateDataObject(dataManager);
                return(Ok());
            }
            catch (Exception ex)
            {
                unlockDataObject();
                throw ex;
            }
        }
        public async Task <IActionResult> Create([FromForm] string value)
        {
            var dataManager = await getDataManager(true);

            try
            {
                ModifyDataResultEnum operationResult;
                var newId = dataManager.resourceRepository.Create(out operationResult, value);

                if (ModifyDataResultHelper.IsResultError(operationResult))
                {
                    unlockDataObject();
                    return(BadRequest(new ModifyDataBadRequestResult(operationResult)));
                }
                updateDataObject(dataManager);
                return(Ok(newId));
            }
            catch (Exception ex)
            {
                unlockDataObject();
                throw ex;
            }
        }