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());
}
}