/// <summary> /// Resultat de la requète getLast /// </summary> /// <param name="sender">Objet parent</param> /// <param name="iq">Résultat de la requète</param> /// <param name="data">Données supplémentaires</param> private void getLastResult(object sender, agsXMPP.protocol.client.IQ iq, object data) { if (iq.Type == agsXMPP.protocol.client.IqType.result) { if (iq.Query != null && iq.Query is agsXMPP.protocol.iq.last.Last) { agsXMPP.protocol.iq.last.Last last = iq.Query as agsXMPP.protocol.iq.last.Last; OnClientLastAvailable(new TimeSpan(0, 0, 0, last.Seconds)); if (Jabber.xmpp.IqGrabber != null && liqID != string.Empty) { Jabber.xmpp.IqGrabber.Remove(liqID); } } } }
private void xmppOnIq(object sender, IQ iq) { if (iq.Type == IqType.get) { if (iq.Query != null) { if (iq.Query is DiscoInfo) { iq.SwitchDirection(); iq.Type = IqType.result; DiscoInfo di = getDiscoInfo(); iq.Query = di; Jabber.xmpp.Send(iq); } else if (iq.Query is DiscoItems) { iq.SwitchDirection(); iq.Type = IqType.error; iq.Error = new Error(ErrorType.cancel, ErrorCondition.FeatureNotImplemented); Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.iq.version.Version) { iq.SwitchDirection(); iq.Type = IqType.result; agsXMPP.protocol.iq.version.Version version = iq.Query as agsXMPP.protocol.iq.version.Version; version.Name = Assembly.GetExecutingAssembly().GetName().Name; version.Ver = Assembly.GetExecutingAssembly().GetName().Version.ToString(); version.Os = Environment.OSVersion.ToString(); Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.iq.last.Last) { iq.SwitchDirection(); iq.Type = IqType.result; agsXMPP.protocol.iq.last.Last last = iq.Query as agsXMPP.protocol.iq.last.Last; last.Seconds = new TimeSpan(Jabber._presence.getLastActivityTicks()).Seconds; Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.iq.time.Time) { iq.SwitchDirection(); iq.Type = IqType.result; agsXMPP.protocol.iq.time.Time time = iq.Query as agsXMPP.protocol.iq.time.Time; time.Display = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(); time.Tz = TimeZone.CurrentTimeZone.StandardName; time.Utc = agsXMPP.util.Time.ISO_8601Date(DateTime.Now); Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.extensions.ping.Ping) { iq.SwitchDirection(); iq.Type = IqType.result; agsXMPP.protocol.extensions.ping.Ping ping = iq.Query as agsXMPP.protocol.extensions.ping.Ping; Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.iq.avatar.Avatar) { iq.SwitchDirection(); iq.Type = IqType.result; agsXMPP.protocol.iq.avatar.Avatar avatar = iq.Query as agsXMPP.protocol.iq.avatar.Avatar; //avatar.Data = null; if (Jabber._identity.photo != null && Jabber._identity.photoFormat != null) { MemoryStream ms = new MemoryStream(); Jabber._identity.photo.Save(ms, Jabber._identity.photoFormat); avatar.Data = ms.ToArray(); avatar.MimeType = "image/" + Jabber._identity.photoFormat.ToString(); ms.Close(); ms.Dispose(); } Jabber.xmpp.Send(iq); } else if (iq.Query is agsXMPP.protocol.iq.vcard.Vcard) { iq.SwitchDirection(); iq.Type = IqType.result; iq.Query = Jabber._identity.toVcard(); Jabber.xmpp.Send(iq); } } } }