/// <summary> /// Publishes the display name. /// </summary> /// <param name="displayName">The display name.</param> public IXmppSession PublishDisplayName(string displayName) { // Publish the display name ( nickname ) IQ iq = new IQ(); VCardData vcard = new VCardData(); iq.ID = XmppIdentifierGenerator.Generate(); iq.Type = IQType.Set; iq.From = this.UserId.ToString(); vcard.NickName = displayName; iq.Items.Add(vcard); this.Send(iq); return this; }
/// <summary> /// Publishes the avatar. /// </summary> /// <param name="mimetype">The mimetype.</param> /// <param name="hash">The hash.</param> /// <param name="avatarImage">The avatar image.</param> public IXmppSession PublishAvatar(string mimetype, string hash, Image avatarImage) { MemoryStream avatarData = new MemoryStream(); try { avatarImage.Save(avatarData, ImageFormat.Png); // Publish the avatar IQ iq = new IQ(); VCardData vcard = new VCardData(); iq.ID = XmppIdentifierGenerator.Generate(); iq.Type = IQType.Set; iq.From = this.UserId.ToString(); vcard.Photo.Type = mimetype; vcard.Photo.Photo = avatarData.ToArray(); iq.Items.Add(vcard); this.Send(iq); // Save the avatar this.avatarStorage.SaveAvatar(this.UserId.BareIdentifier, hash, avatarData); // Update session configuration this.avatarStorage.Save(); } catch { throw; } finally { if (avatarData != null) { avatarData.Close(); avatarData.Dispose(); avatarData = null; } } return this; }