/// <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; }