/// <summary> /// Sets a date & time-valued control parameter /// </summary> /// <param name="Jid">JID of controller</param> /// <param name="ParameterName">Parameter name.</param> /// <param name="Value">Value to set.</param> /// <param name="OnlyDatePart">If only the date part should be set (true) or if both date and time parts should be set (false).</param> /// <param name="Nodes">Node references.</param> /// <param name="ServiceToken">Service token.</param> /// <param name="DeviceToken">Device token.</param> /// <param name="UserToken">User token.</param> public void Set(string Jid, string ParameterName, DateTime Value, bool OnlyDatePart, NodeReference[] Nodes, string ServiceToken, string DeviceToken, string UserToken) { StringBuilder sb = new StringBuilder(); XmlWriter w = XmlWriter.Create(sb, XmlUtilities.GetXmlWriterSettings(false, true, true)); w.WriteStartElement("set", "urn:xmpp:iot:control"); if (!string.IsNullOrEmpty(ServiceToken)) { w.WriteAttributeString("serviceToken", ServiceToken); } if (!string.IsNullOrEmpty(DeviceToken)) { w.WriteAttributeString("deviceToken", DeviceToken); } if (!string.IsNullOrEmpty(UserToken)) { w.WriteAttributeString("userToken", UserToken); } ProvisioningServer.WriteNodes(w, Nodes); if (OnlyDatePart) { w.WriteStartElement("date"); w.WriteAttributeString("name", ParameterName); w.WriteAttributeString("value", XmlUtilities.DateToString(Value)); w.WriteEndElement(); } else { w.WriteStartElement("dateTime"); w.WriteAttributeString("name", ParameterName); w.WriteAttributeString("value", XmlUtilities.DateTimeToString(Value)); w.WriteEndElement(); } w.WriteEndElement(); w.Flush(); client.SendMessage(Jid, string.Empty, MessageType.Normal, sb.ToString()); }
/// <summary> /// Converts a value to a string suitable for use in an XMPP data form. /// </summary> /// <param name="Value">Value to export.</param> protected override string ValueToString(DateTime Value) { return(XmlUtilities.DateToString(Value)); }