示例#1
0
        /// <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));
 }