SuperMap.Connector.DataProvider.UpdateFeatures C# (CSharp) Method

UpdateFeatures() public method

在指定的数据集中,更新一组要素。 参数 targetFeatures 是新要素列表,其要素 ID 与数据集中待更新的要素 ID 相同,根据 ID 查找到待更新的要素, 然后将原要素更新到新的要素。
public UpdateFeatures ( string datasourceName, string datasetName, List targetFeatures ) : EditResult
datasourceName string 数据源名称。
datasetName string 数据源名称。
targetFeatures List 新要素列表。其 ID 与要更新的要素 ID 相同。
return EditResult
        public EditResult UpdateFeatures(string datasourceName, string datasetName, List<Feature> targetFeatures)
        {
            EditResult editResult = new EditResult();
            if (string.IsNullOrEmpty(datasourceName))
            {
                editResult.Succeed = false;
                editResult.Message = string.Format(Resources.ParamIsNotNull, "datasourceName");
                return editResult;
            }
            if (string.IsNullOrEmpty(datasetName))
            {
                editResult.Succeed = false;
                editResult.Message = string.Format(Resources.ParamIsNotNull, "datasetName");
                return editResult;
            }
            if (targetFeatures == null || targetFeatures.Count <= 0)
            {
                editResult.Succeed = false;
                editResult.Message = string.Format(Resources.ParamIsNotNull, "targetFeatures");
                return editResult;
            }
            else
            {
                int featureCount = targetFeatures.Count;
                for (int i = 0; i < featureCount; i++)
                {
                    if (targetFeatures[i].Id <= 0)
                    {
                        editResult.Succeed = false;
                        editResult.Message = string.Format(Resources.ParamIsInvalid, "Feature.Id");
                        return editResult;
                    }
                    else if (targetFeatures[i].Geometry != null)
                    {
                        targetFeatures[i].Geometry.Id = targetFeatures[i].Id;
                    }
                    if (targetFeatures[i].FieldNames == null)
                    {
                        targetFeatures[i].FieldNames = new string[] { };
                    }
                    if (targetFeatures[i].FieldValues == null)
                    {
                        targetFeatures[i].FieldValues = new string[] { };
                    }
                }
            }
            string uri = string.Format("{0}/data/datasources/{1}/datasets/{2}/features.json?_method=PUT", this._serviceUrl,
                datasourceName, datasetName);
            string postData = JsonConvert.SerializeObject(targetFeatures);
            string requestResultJson = string.Empty;
            try
            {
                requestResultJson = SynchHttpRequest.GetRequestString(uri, postData);
                editResult = JsonConvert.DeserializeObject<EditResult>(requestResultJson);
            }
            catch (ServiceException e)
            {
                editResult.Succeed = false;
                editResult.Message = e.Message;
                return editResult;
            }
            return editResult;
        }