void FindGroupChatsChatInfoParse(Jid jid, DiscoInfo items, List<GroupChatModel> list)
{
var ident = items.SelectSingleElement<DiscoIdentity>();
string name;
if (ident != null && !String.IsNullOrEmpty(ident.Name)) {
name = ident.Name + " [" + jid + "]";
} else {
name = jid;
}
var chat = new GroupChatModel(jid, name, null);
chat.PersonCount = -1;
var x = items.SelectSingleElement<agsXMPP.protocol.x.data.Data>();
if (x != null) {
var users_field = x.GetField("muc#roominfo_occupants");
var topic_field = x.GetField("muc#roominfo_subject");
var desc_field = x.GetField("muc#roominfo_description");
if (users_field != null) {
chat.PersonCount = int.Parse(users_field.GetValue());
}
if (topic_field != null) {
chat.Topic = new MessageModel(topic_field.GetValue());
} else if (desc_field != null) {
chat.Topic = new MessageModel(desc_field.GetValue());
}
}
lock (list) {
list.Add(chat);
}
}