protected string privacyCategoryToString(WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilityCategory c)
        {
            switch (c)
            {
            case WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilityCategory.LastSeenTime:
                return("last");

            case WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilityCategory.Status:
                return("status");

            case WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilityCategory.ProfilePhoto:
                return("profile");

            default:
                throw new Exception("Invalid privacy category");
            }
        }
        public void SendSetPrivacySetting(WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilityCategory category, WhatsAPI.UniversalApps.Libs.Constants.Enums.VisibilitySetting setting)
        {
            ProtocolTreeNode node = new ProtocolTreeNode("iq", new[] {
                new KeyValue("to", "s.whatsapp.net"),
                new KeyValue("id", TicketCounter.MakeId("setprivacy_")),
                new KeyValue("type", "set"),
                new KeyValue("xmlns", "privacy")
            }, new ProtocolTreeNode[] {
                new ProtocolTreeNode("privacy", null, new ProtocolTreeNode[] {
                    new ProtocolTreeNode("category", new [] {
                        new KeyValue("name", this.privacyCategoryToString(category)),
                        new KeyValue("value", this.privacySettingToString(setting))
                    })
                })
            });

            this.SendNode(node);
        }