private List<Message> buildMessagesList(XmlDocument x, MessageType type)
{
XmlUtils.UseNode(x);
int msgCount = XmlUtils.Int("/response/count");
//int msgCount = Convert.ToInt32(x.SelectNodes("/response/count"));
XmlNodeList msgsNodes = x.SelectNodes("/response/message");
if (msgsNodes.Count > 0)
{
List<Message> msgList = new List<Message>();
foreach (XmlNode msgNode in msgsNodes)
{
Message message = new Message();
message.Id = Convert.ToInt32(msgNode.SelectSingleNode("mid").InnerText);
message.Body = msgNode.SelectSingleNode("body").InnerText;
if (type == MessageType.History)
{
this.HistoryMessagesCount = msgCount;
message.UserId = Convert.ToInt32(msgNode.SelectSingleNode("from_id").InnerText);
}
else
{
switch(type)
{
case MessageType.Incoming: this.IncomingMessagesCount = msgCount; break;
case MessageType.Outgoing: this.OutgoingMessagesCount = msgCount; break;
}
message.Title = msgNode.SelectSingleNode("title").InnerText;
message.UserId = Convert.ToInt32(msgNode.SelectSingleNode("uid").InnerText);
}
message.Date = CommonUtils.FromUnixTime(msgNode.SelectSingleNode("date").InnerText);
message.State = (MessageState)Convert.ToInt32(msgNode.SelectSingleNode("read_state").InnerText);
msgList.Add(message);
}
return msgList;
}
return null;
}