/// <summary>
 /// Возвращает записи со стены указанного пользователя, которые были написаны им самим.
 /// </summary>
 /// <param name="uid">идентификатор пользователя (по умолчанию - текущий пользователь).</param>
 /// <returns></returns>
 public List<ActivityInfo> ActivityGetHistory(string uid)
 {
     if (this.IsConnected && (this.Settings & (int)VKSettings.Status) != 0)
     {
         //Получаем список со всеми параметрами
         var data = new List<VKParameter>();
         data.Add(new VKParameter("uid", uid));
         XmlDocument doc = this.ExecuteMethodByToken("activity.getHistory", data);
         if (!this.HasError(doc))
         {
             DataSet ds = new DataSet();
             StringReader sr = new StringReader(doc.InnerXml);
             ds.ReadXml(sr, XmlReadMode.InferSchema);
             List<ActivityInfo> list = new List<ActivityInfo>();
             if (!ds.Tables.Contains("activity")) return list;
             foreach (DataRow row in ds.Tables["activity"].Rows)
             {
                 ActivityInfo activity = new ActivityInfo();
                 activity.Activity = row["text"].ToString();
                 activity.Id = long.Parse(row["id"].ToString());
                 activity.Time = Utils.DateTimeUtils.ConvertFromUnixTimestamp(double.Parse(row["created"].ToString()));
                 list.Add(activity);
             }
             return list;
         }
         else
         {
             VKErrorInfo info = this.GetErrorContent(doc);
             return null;
         }
     }
     return null;
 }
        /// <summary>
        /// Возвращает обновления записей пользователей, опубликованных ими на собственных стенах.
        /// </summary>
        /// <param name="time">будут возвращены записи, которые были созданы не раньше этого времени (unixtime). Если этот параметр не указан, то используются параметры offset и count.</param>
        /// <param name="offset"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public List<ActivityInfo> ActivityGetNews(Nullable<DateTime> time, int offset = 0, int count = 100)
        {
            if (this.IsConnected && (this.Settings & (int)VKSettings.Status) != 0)
            {
                //Получаем список со всеми параметрами
                var param = new List<VKParameter>();
                if (time.HasValue)
                {
                    param.Add(new VKParameter("timestamp", Utils.DateTimeUtils.ConvertToUnixTimestamp(time.Value).ToString()));
                }
                else
                {
                    param.Add(new VKParameter("offset", offset.ToString()));
                    param.Add(new VKParameter("count", count.ToString()));
                }

                XmlDocument doc = this.ExecuteMethodByToken("activity.getNews", param);
                if (!this.HasError(doc))
                {
                    DataSet ds = new DataSet();
                    StringReader sr = new StringReader(doc.InnerXml);
                    ds.ReadXml(sr, XmlReadMode.InferSchema);
                    List<ActivityInfo> list = new List<ActivityInfo>();
                    if (!ds.Tables.Contains("activity"))
                        return list;
                    foreach (DataRow row in ds.Tables["activity"].Rows)
                    {
                        ActivityInfo activity = new ActivityInfo();
                        activity.Activity = row["text"].ToString();
                        activity.Id = long.Parse(row["uid"].ToString());
                        activity.Time = Utils.DateTimeUtils.ConvertFromUnixTimestamp(double.Parse(row["timestamp"].ToString()));
                        list.Add(activity);
                    }
                    return list;
                }
                else
                {
                    VKErrorInfo info = this.GetErrorContent(doc);
                    return null;
                }
            }
            return null;
        }
 /// <summary>
 /// Возвращает последнюю запись пользователя, которую он опубликовал на своей стене.
 /// </summary>
 /// <param name="uid">идентификатор пользователя (по умолчанию - текущий пользователь).</param>
 /// <returns></returns>
 public ActivityInfo ActivityGet(string uid)
 {
     if (this.IsConnected && (this.Settings & (int)VKSettings.Status) != 0)
     {
         //Получаем список со всеми параметрами
         var data = new List<VKParameter>();
         data.Add(new VKParameter("uid", uid));
         XmlDocument doc = this.ExecuteMethodByToken("activity.get", data);
         if (!this.HasError(doc))
         {
             ActivityInfo activity = new ActivityInfo();
             activity.Activity = doc.SelectSingleNode("response/activity/text()").Value;
             activity.Id = long.Parse(doc.SelectSingleNode("response/id/text()").Value);
             activity.Time = Utils.DateTimeUtils.ConvertFromUnixTimestamp(double.Parse(doc.SelectSingleNode("response/time/text()").Value));
             return activity;
         }
         else
         {
             VKErrorInfo info = this.GetErrorContent(doc);
             return null;
         }
     }
     return null;
 }