public EditResult AddFeatures(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;
}
int featureCount = targetFeatures.Count;
for (int i = 0; i < featureCount; i++)
{
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?returnContent=true", this._serviceUrl,
datasourceName, datasetName);
string postData = JsonConvert.SerializeObject(targetFeatures);
string requestResultJson = string.Empty;
try
{
requestResultJson = SynchHttpRequest.GetRequestString(uri, postData);
}
catch (ServiceException e)
{
editResult.Succeed = false;
editResult.Message = e.Message;
return editResult;
}
//处理返回的ids ,[167,168]
string[] idsStr = requestResultJson.Replace("[", "").Replace("]", "").Trim().Split(',');
int idsNum = idsStr.Length;
editResult.Ids = new int[idsNum];
for (int i = 0; i < idsNum; i++)
{
int.TryParse(idsStr[i].Trim(), out editResult.Ids[i]);
}
//判断ids的个数,小于等于0,即判定为添加要素错误
if (idsNum > 0)
{
editResult.Succeed = true;
}
else
{
editResult.Succeed = false;
}
return editResult;
}