/// <summary> /// Checks if the concentrator contains a given node (that the user is allowed to see). /// </summary> /// <param name="To">Address of server.</param> /// <param name="NodeID">Node ID</param> /// <param name="SourceID">Optional Source ID</param> /// <param name="Partition">Optional Partition</param> /// <param name="ServiceToken">Optional Service token.</param> /// <param name="DeviceToken">Optional Device token.</param> /// <param name="UserToken">Optional User token.</param> /// <param name="Callback">Method to call when response is returned.</param> /// <param name="State">State object to pass on to callback method.</param> public void ContainsNode(string To, string NodeID, string SourceID, string Partition, string ServiceToken, string DeviceToken, string UserToken, BooleanResponseEventHandler Callback, object State) { StringBuilder Xml = new StringBuilder(); Xml.Append("<containsNode xmlns='"); Xml.Append(ConcentratorServer.NamespaceConcentrator); Xml.Append("'"); this.AppendNodeAttributes(Xml, NodeID, SourceID, Partition); this.AppendTokenAttributes(Xml, ServiceToken, DeviceToken, UserToken); Xml.Append("'/>"); this.client.SendIqGet(To, Xml.ToString(), (sender, e) => { this.BooleanResponse(e, "containsNodeResponse", Callback, State); }, State); }
private void BooleanResponse(IqResultEventArgs e, string ExpectedElement, BooleanResponseEventHandler Callback, object State) { XmlElement E; if (!e.Ok || (E = e.FirstElement) == null || E.LocalName != ExpectedElement || !CommonTypes.TryParse(E.InnerText, out bool Response)) { e.Ok = false; Response = false; } if (Callback != null) { try { Callback(this, new BooleanResponseEventArgs(Response, e)); } catch (Exception ex) { Log.Critical(ex); } } }
/// <summary> /// Checks if the concentrator contains a given node (that the user is allowed to see). /// </summary> /// <param name="To">Address of server.</param> /// <param name="Node">Node</param> /// <param name="ServiceToken">Optional Service token.</param> /// <param name="DeviceToken">Optional Device token.</param> /// <param name="UserToken">Optional User token.</param> /// <param name="Callback">Method to call when response is returned.</param> /// <param name="State">State object to pass on to callback method.</param> public void ContainsNode(string To, IThingReference Node, string ServiceToken, string DeviceToken, string UserToken, BooleanResponseEventHandler Callback, object State) { this.ContainsNode(To, Node.NodeId, Node.SourceId, Node.Partition, ServiceToken, DeviceToken, UserToken, Callback, State); }