${REST_EditFeaturesResult_Title}

${REST_EditFeaturesResult_Description}

        /// <summary>${REST_EditFeaturesService_method_ProcessAsync_D}</summary>
        /// <param name="parameters">${REST_EditFeaturesService_method_ProcessAsync_param_Parameters}</param>
        /// <param name="state">${REST_EditFeaturesService_method_ProcessAsync_param_state}</param>
        public async Task<EditFeaturesResult> ProcessAsync(EditFeaturesParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException(ExceptionStrings.ArgumentIsNull);
            }
            if (string.IsNullOrEmpty(this.Url))
            {
                throw new InvalidOperationException(ExceptionStrings.InvalidUrl);
            }

            if (parameters.EditType == EditType.ADD)
            {
                base.Url += ".json?returnContent=true&debug=true";//直接获取添加地物SmID
            }
            else if (parameters.EditType == EditType.DELETE)
            {
                base.Url += ".json?_method=DELETE&debug=true";
            }
            else
            {
                base.Url += ".json?_method=PUT&debug=true";
            }

            var jsonResult = await base.SubmitRequest(base.Url, GetParameters(parameters), true, true);
            EditFeaturesResult result = null;
            if (JsonObject.Parse(jsonResult) is JsonObject)
            {
                JsonObject jsonObject = JsonObject.Parse(jsonResult);
                result = EditFeaturesResult.FromJson(jsonObject);

            }
            else
            {
                JsonArray json = JsonArray.Parse(jsonResult);
                result = new EditFeaturesResult();
                result.Succeed = true;
                result.IDs = new List<int>();
                for (int i = 0; i < json.Count; i++)
                {
                    result.IDs.Add((int)json[i].GetNumberEx());
                }
            }
            return result;
        }
        /// <summary>${REST_EditFeaturesResult_method_FromJson_D}</summary>
        /// <returns>${REST_EditFeaturesResult_method_FromJson_return}</returns>
        /// <param name="json">${REST_EditFeaturesResult_method_FromJson_param_jsonObject}</param>
        internal static EditFeaturesResult FromJson(JsonObject json)
        {
            if (json == null)
                return null;

            EditFeaturesResult result = new EditFeaturesResult();

            result.Succeed = json["succeed"].GetBooleanEx();
            //TODO:
            if (json.ContainsKey("newResourceLocation"))
            {
                result.NewResourceLocation = json["newResourceLocation"].GetStringEx();
            }
            //if (json.ContainsKey("error"))
            //{
            //    result.Error = HttpError.FromJson((JsonObject)json["error"]);
            //}

            return result;
        }