/// <summary>
        /// Sets the presence state with the given state, status message and priority
        /// </summary>
        /// <param name="showAs"></param>
        /// <param name="statusMessage"></param>
        /// <param name="priority"></param>
        public async Task SetPresenceAsync(ShowType showAs, string statusMessage, int priority)
        {
            var transport = XmppTransportManager.GetTransport();

            this.presence = new Presence
            {
                From            = transport.UserAddress
                , Show          = ShowType.Online
                , ShowSpecified = true
                , Status        = new Status {
                    Value = statusMessage
                }
                , Priority          = (sbyte)priority
                , PrioritySpecified = true
            };

            await transport.SendAsync(this.presence).ConfigureAwait(false);
        }
        /// <summary>
        /// Sets the presence as Unavailable
        /// </summary>
        public async Task SetUnavailableAsync()
        {
            var transport = XmppTransportManager.GetTransport();

            await transport.SendAsync(new Presence().AsUnavailable()).ConfigureAwait(false);
        }