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);
        }
示例#2
0
        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("查询失败");
            }
        }
示例#3
0
        /// <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);
                    }
                }
            }
        }