Smuxi.Engine.XmppProtocolManager.CommandRoster C# (CSharp) Method

CommandRoster() private method

private CommandRoster ( Smuxi.Engine.CommandModel cd ) : void
cd Smuxi.Engine.CommandModel
return void
        public void CommandRoster(CommandModel cd)
        {
            bool full = false;
            if (cd.Parameter == "full") {
                full = true;
            }

            MessageBuilder builder = CreateMessageBuilder();
            builder.AppendHeader("Roster");
            Session.AddMessageToFrontend(cd, builder.ToMessage());

            foreach (var pair in Contacts) {
                string status = "+";
                var contact = pair.Value;
                if (contact.Resources.Count == 0) {
                    if (!full) {
                        continue;
                    }
                    status = "-";
                }
                builder = CreateMessageBuilder();
                builder.AppendText("{0} {1}\t({2}): {3},{4}",
                                   status,
                                   contact.IdentityName,
                                   pair.Key,
                                   contact.Subscription,
                                   contact.Ask
                );
                foreach (var p in contact.Resources) {
                    builder.AppendText("\t|\t{0}:{1}:{2}",
                                       p.Key,
                                       p.Value.Presence.Type.ToString(),
                                       p.Value.Presence.Priority
                    );
                    if (!String.IsNullOrEmpty(p.Value.Presence.Status)) {
                        builder.AppendText(":\"{0}\"", p.Value.Presence.Status);
                    }
                }
                Session.AddMessageToFrontend(cd, builder.ToMessage());
            }
        }