public List<Message> Get(MessageType type, MessageFilter? filter, int? offset, int? count, int? previewLen, int? timeOffset)
{
this.Manager.Method("messages.get");
this.Manager.Params("out", (int)type);
if (filter != null)
{
this.Manager.Params("filters", (int)filter);
}
if (offset != null)
{
this.Manager.Params("offset", offset);
}
if (count != null)
{
this.Manager.Params("count", count);
}
if (previewLen != null)
{
this.Manager.Params("preview_length", previewLen);
}
if (timeOffset != null)
{
this.Manager.Params("time_offset", timeOffset);
}
string resp = this.Manager.Execute().GetResponseString();
if (this.Manager.MethodSuccessed)
{
XmlDocument x = this.Manager.GetXmlDocument(resp);
if (x.SelectSingleNode("/response").InnerText.Equals("0"))
{
return null;
}
if (type == MessageType.Outgoing)
{
this.OutgoingMessagesCount = Convert.ToInt32(x.SelectSingleNode("/response/count").InnerText);
}
else
{
this.IncomingMessagesCount = Convert.ToInt32(x.SelectSingleNode("/response/count").InnerText);
}
switch (type)
{
case MessageType.History: return this.buildMessagesList(x, MessageType.History); break;
case MessageType.Incoming: return this.buildMessagesList(x, MessageType.Incoming); break;
case MessageType.Outgoing: return this.buildMessagesList(x, MessageType.Outgoing); break;
}
}
return null;
}