public List <LinkIDAttribute> getAttributes(String userId, String attributeName) { setTargetIdentity(userId); QueryType query = new QueryType(); QueryItemType queryItem = new QueryItemType(); queryItem.objectType = DataServiceConstants.ATTRIBUTE_OBJECT_TYPE; query.QueryItem = new QueryItemType[] { queryItem }; SelectType select = new SelectType(); select.Value = attributeName; queryItem.Select = select; QueryResponseType response = this.client.Query(query); validateStatus(response.Status); // parse attributes List <LinkIDAttribute> attributes = new List <LinkIDAttribute>(); if (null != response.Data) { foreach (DataType data in response.Data) { attributes.Add(getAttribute(data.Attribute)); } } return(attributes); }
public void GetAllLTENodeREQ() { QueryItemType Param_Item = new QueryItemType(); Param_Item.itemID = new Guid(); Param_Item.objectType = QueryableTypes.LTENodeType; QueryRequestType Params = new QueryRequestType(); Params.QueryItems = new QueryItemType[] { Param_Item }; Params.itemID = new Guid(); EDSClient client = new EDSClient("EDSWCFNetTCPEndPoint"); client.Open(); var Respone = client.Query(Params); if (Respone.Status.code == StatusTypeCode.OK) { JLog.Instance.AppDebug("查询成功"); #region 输出成功 foreach (var s in Respone.Status.Status) { #region 访问所有的状态 if (s.code == StatusTypeCode.OK) { // use LINQ to match successful status result with matching dataset DataType d = Respone.Data.Where(q => q.itemIDRef == s.@ref).FirstOrDefault();//获取编号相同 if (d != null) { JLog.Instance.AppDebug(string.Format("共获取到{0}个LTENODE", d.AppData.Count())); //XmlSerializer sr = new XmlSerializer(typeof(DataType)); //XmlWriterSettings settings = new XmlWriterSettings() //{ // Indent = true, // NewLineHandling = NewLineHandling.Entitize //}; //// Simply dump dataset to xml file on disk... //using (XmlWriter wr = XmlWriter.Create("wjj" + "-" + d.itemIDRef.ToString() + ".xml", settings)) //{ // sr.Serialize(wr, d); //} } } else { JLog.Instance.AppInfo(string.Format("code: {0}, comment: {1}", s.code, s.comment)); } #endregion } #endregion } else { JLog.Instance.AppDebug("查询失败"); } }
/// <summary> /// Validates the StatusType object. /// </summary> /// <param name="_status">The statuses to validate.</param> /// <param name="_str">Used to return detailed comments of failures.</param> /// <param name="_error">Indicates the succes of the validation. True is a failure and _str should be consulted for details.</param> /// <param name="_items">The data items that were used in the request. These are used for better error reporting.</param> /// <remarks>Anything other than StatusTypeCode.OK is appened to the _str parameter.</remarks> private void ValidateStatus(StatusType[] _status, StringBuilder _str, ref bool _error, DataItemBaseType[] _items) { if (_status != null) { foreach (StatusType status in _status) { if (status.code != StatusTypeCode.OK) { _error = true; DataItemBaseType item = _items.Where(it => it.itemID == status.@ref).FirstOrDefault(); string id = null; if (item is CreateItemType) { CreateItemType cItem = item as CreateItemType; if (cItem.NewData.Count() > 0) { id = String.Format(" [{0} : {1}]", cItem.NewData[0].GetType().Name, cItem.NewData[0].iid); } } else if (item is ModifyItemType) { ModifyItemType mItem = item as ModifyItemType; if (mItem.NewData.Count() > 0) { id = String.Format(" [{0} : {1}]", mItem.NewData[0].GetType().Name, mItem.NewData[0].iid); } } else if (item is DeleteItemType) { DeleteItemType dItem = item as DeleteItemType; if (dItem.Select != null && dItem.Select.Item is QrySimpleTextType) { id = String.Format(" [{0} : {1}]", dItem.objectType.ToString(), (dItem.Select.Item as QrySimpleTextType).Query); } } else if (item is QueryItemType) { QueryItemType qItem = item as QueryItemType; if (qItem.Select != null && qItem.Select.Item is QrySimpleTextType) { id = String.Format(" [{0} : {1}]", qItem.objectType.ToString(), (qItem.Select.Item as QrySimpleTextType).Query); } } _str.Append(String.Format("## {0}{1} - {2}", status.code.ToString(), id == null ? "" : id, status.comment)); ValidateStatus(status.Status, _str, ref _error, _items); } } } }