Beispiel #1
0
        /// <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;
        }
Beispiel #2
0
        /// <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;
        }