private void XMPP_Message(XmlElement element)
{
if (element.Attributes.GetNamedItem ("to").Value == JID) {
string frm = element.Attributes.GetNamedItem ("from").Value;
string key = frm.Split ('/') [0];
if (Rooms.ContainsKey(key)){
Room r = Rooms [key];
string user = frm.Substring (key.Length+1), message = "";
DateTime stamp = DateTime.Now;
foreach (XmlElement el in element.ChildNodes) {
if (el.Name == "body") {
message = el.InnerXml;
} else if (el.Name == "delay") {
string stmp = el.Attributes.GetNamedItem ("stamp").Value;
stamp = DateTime.Parse (stmp);
}
}
if (MessageReceived != null) {
User userObj = null;
if (r.Users.ContainsKey (user)) {
userObj = r.Users [user];
MessageReceived (r, new MessageReceivedEventArgs (r.Users [user], message,stamp));//TODO: stamp
} else {
MessageReceived (r, new MessageReceivedEventArgs (user, message,stamp));
}
}
}
}
}