Exemple #1
0
 public DownloadingPostsOptions(long wallId, int countInFirstLoad, WallFilter wallFilter, TimeSpan timeForReconnection)
 {
     WallId              = wallId;
     CountInFirstLoad    = countInFirstLoad;
     WallFilter          = wallFilter;
     TimeForReconnection = timeForReconnection;
 }
 /// <summary>Получает список идентификаторов пользователей, которые добавили заданный объект в свой список</summary>
 /// <param name="type">тип Like-объекта</param>
 /// <param name="owner_id">идентификатор владельца Like-объекта (id пользователя или id приложения)</param>
 /// <param name="item_id">идентификатор Like-объекта</param>
 /// <param name="page_url">url страницы, на которой установлен виджет «Мне нравится»</param>
 /// <param name="filter">указывает, следует ли вернуть всех пользователей, добавивших объект в список &quot;Мне нравится&quot; или только тех, которые рассказали о нем друзьям</param>
 /// <param name="friends_only">указывает, необходимо ли возвращать только пользователей, которые являются друзьями текущего пользователя</param>
 /// <param name="offset">смещение, относительно начала списка, для выборки определенного подмножества</param>
 /// <param name="count">количество возвращаемых идентификаторов пользователей</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 private VKResponseBase getList(string type, System.Int64? owner_id, string item_id, string page_url, WallFilter? filter, System.Boolean? friends_only, System.Int32? offset, System.Int32? count)
 {
     manager.AddValueByName("@type", type);
     manager.AddValueByName("@owner_id", owner_id);
     manager.AddValueByName("@item_id", item_id);
     manager.AddValueByName("@page_url", page_url);
     manager.AddValueByName("@filter", filter);
     manager.AddValueByName("@friends_only", friends_only);
     manager.AddValueByName("@offset", offset);
     manager.AddValueByName("@count", count);
     return new VKResponseBase(GetResponse("getList"), IsXMLResponse);
 }
Exemple #3
0
 public void WallFilterTest()
 {
     // get test
     Assert.That(WallFilter.Owner.ToString(), Is.EqualTo("owner"));
     Assert.That(WallFilter.Others.ToString(), Is.EqualTo("others"));
     Assert.That(WallFilter.All.ToString(), Is.EqualTo("all"));
     Assert.That(WallFilter.Suggests.ToString(), Is.EqualTo("suggests"));
     Assert.That(WallFilter.Postponed.ToString(), Is.EqualTo("postponed"));
     // parse test
     Assert.That(WallFilter.FromJsonString("owner"), Is.EqualTo(WallFilter.Owner));
     Assert.That(WallFilter.FromJsonString("others"), Is.EqualTo(WallFilter.Others));
     Assert.That(WallFilter.FromJsonString("all"), Is.EqualTo(WallFilter.All));
     Assert.That(WallFilter.FromJsonString("suggests"), Is.EqualTo(WallFilter.Suggests));
     Assert.That(WallFilter.FromJsonString("postponed"), Is.EqualTo(WallFilter.Postponed));
 }
Exemple #4
0
		public int GetExtended(long ownerId, out ReadOnlyCollection<Post> wallPosts, out ReadOnlyCollection<User> profiles, out ReadOnlyCollection<Group> groups, int? count = null, int? offset = null, WallFilter filter = WallFilter.All)
		{			   
			VkErrors.ThrowIfNumberIsNegative(() => count);
			VkErrors.ThrowIfNumberIsNegative(() => offset);
			if (filter == WallFilter.Suggests && ownerId >= 0)
				throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");

			var parameters = new VkParameters { { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() }, {"extended", 1} };
			var response = _vk.Call("wall.get", parameters);

		    wallPosts = response["items"].ToReadOnlyCollectionOf<Post>(r => r);
			profiles = response["profiles"].ToReadOnlyCollectionOf<User>(r => r);
			groups = response["groups"].ToReadOnlyCollectionOf<Group>(r => r);
		    return response["count"];
		}
        public ReadOnlyCollection<Post> GetAll(long ownerId, WallFilter filter = WallFilter.All)
        {
            const int count = 100;
            var i = 0;
            var allPosts = new List<Post>();

            do
            {
                int totalCount;
                var currentPosts = _wall.Get(ownerId, out totalCount, count, i * count, filter);
                if (currentPosts != null) allPosts.AddRange(currentPosts);
            } while (++i * count < (_vk.CountFromLastResponse ?? 0));

            return allPosts.ToReadOnlyCollection();
        }
Exemple #6
0
        public void WallFilterTest()
        {
            // get test
            Assert.That(actual: WallFilter.Owner.ToString(), expression: Is.EqualTo(expected: "owner"));
            Assert.That(actual: WallFilter.Others.ToString(), expression: Is.EqualTo(expected: "others"));
            Assert.That(actual: WallFilter.All.ToString(), expression: Is.EqualTo(expected: "all"));
            Assert.That(actual: WallFilter.Suggests.ToString(), expression: Is.EqualTo(expected: "suggests"));
            Assert.That(actual: WallFilter.Postponed.ToString(), expression: Is.EqualTo(expected: "postponed"));

            // parse test
            Assert.That(actual: WallFilter.FromJsonString(response: "owner"), expression: Is.EqualTo(expected: WallFilter.Owner));
            Assert.That(actual: WallFilter.FromJsonString(response: "others"), expression: Is.EqualTo(expected: WallFilter.Others));
            Assert.That(actual: WallFilter.FromJsonString(response: "all"), expression: Is.EqualTo(expected: WallFilter.All));
            Assert.That(actual: WallFilter.FromJsonString(response: "suggests"), expression: Is.EqualTo(expected: WallFilter.Suggests));
            Assert.That(actual: WallFilter.FromJsonString(response: "postponed"), expression: Is.EqualTo(expected: WallFilter.Postponed));
        }
Exemple #7
0
        public ReadOnlyCollection<Post> Get(long ownerId, out int totalCount, int? count = null, int? offset = null, WallFilter filter = WallFilter.All)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
			VkErrors.ThrowIfNumberIsNegative(() => offset);
			if (filter == WallFilter.Suggests && ownerId >= 0)
		        throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");

	        var parameters = new VkParameters { { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() } };

			VkResponse response = _vk.Call("wall.get", parameters);

            totalCount = response["count"];

            VkResponseArray items = response["items"];
			return items.ToReadOnlyCollectionOf<Post>(r => r);
        }
Exemple #8
0
		public ReadOnlyCollection<Post> Get(long ownerId, out int totalCount, int? count = null, int? offset = null, WallFilter filter = null)
		{
			VkErrors.ThrowIfNumberIsNegative(() => count);
			VkErrors.ThrowIfNumberIsNegative(() => offset);
			if (filter != null && filter == WallFilter.Suggests && ownerId >= 0)
			{
				throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
			}
			var result = Get(new WallGetParams
			{
				OwnerId = ownerId,
				Count = (ulong)count,
				Offset = (ulong)offset,
				Filter = filter
			});
			totalCount = Convert.ToInt32(result.TotalCount);
			return result.WallPosts;
		}
Exemple #9
0
		public int GetExtended(long ownerId, out ReadOnlyCollection<Post> wallPosts, out ReadOnlyCollection<User> profiles, out ReadOnlyCollection<Group> groups, int? count = null, int? offset = null, WallFilter filter = null)
		{
			VkErrors.ThrowIfNumberIsNegative(() => count);
			VkErrors.ThrowIfNumberIsNegative(() => offset);
			if (filter != null && filter == WallFilter.Suggests && ownerId >= 0)
			{
				throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
			}
			var result = Get(new WallGetParams
			{
				OwnerId = ownerId,
				Count = (ulong)count,
				Offset = (ulong)offset,
				Filter = filter,
				Extended = true
			});
			wallPosts = result.WallPosts;
			profiles = result.Profiles;
			groups = result.Groups;
			return Convert.ToInt32(result.TotalCount);
		}
        public int GetExtended(long ownerId, out ReadOnlyCollection <Post> wallPosts, out ReadOnlyCollection <User> profiles, out ReadOnlyCollection <Group> groups, int?count = null, int?offset = null, WallFilter filter = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            if (filter != null && filter == WallFilter.Suggests && ownerId >= 0)
            {
                throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
            }
            var result = Get(new WallGetParams
            {
                OwnerId  = ownerId,
                Count    = (ulong)count,
                Offset   = (ulong)offset,
                Filter   = filter,
                Extended = true
            });

            wallPosts = result.WallPosts;
            profiles  = result.Profiles;
            groups    = result.Groups;
            return(Convert.ToInt32(result.TotalCount));
        }
        public ReadOnlyCollection <Post> Get(long ownerId, out int totalCount, int?count = null, int?offset = null, WallFilter filter = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            if (filter != null && filter == WallFilter.Suggests && ownerId >= 0)
            {
                throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
            }
            var result = Get(new WallGetParams
            {
                OwnerId = ownerId,
                Count   = (ulong)count,
                Offset  = (ulong)offset,
                Filter  = filter
            });

            totalCount = Convert.ToInt32(result.TotalCount);
            return(result.WallPosts);
        }
Exemple #12
0
        public int GetExtended(long ownerId, out ReadOnlyCollection <Post> wallPosts, out ReadOnlyCollection <User> profiles, out ReadOnlyCollection <Group> groups, int?count = null, int?offset = null, WallFilter filter = WallFilter.All)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            if (filter == WallFilter.Suggests && ownerId >= 0)
            {
                throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
            }

            var parameters = new VkParameters {
                { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() }, { "extended", 1 }
            };
            var response = _vk.Call("wall.get", parameters);

            wallPosts = response["items"].ToReadOnlyCollectionOf <Post>(r => r);
            profiles  = response["profiles"].ToReadOnlyCollectionOf <User>(r => r);
            groups    = response["groups"].ToReadOnlyCollectionOf <Group>(r => r);
            return(response["count"]);
        }
Exemple #13
0
        public ReadOnlyCollection <Post> Get(long ownerId, out int totalCount, int?count = null, int?offset = null, WallFilter filter = WallFilter.All)
        {
            VkErrors.ThrowIfNumberIsNegative(() => count);
            VkErrors.ThrowIfNumberIsNegative(() => offset);
            if (filter == WallFilter.Suggests && ownerId >= 0)
            {
                throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId");
            }

            var parameters = new VkParameters {
                { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() }
            };

            VkResponse response = _vk.Call("wall.get", parameters);

            totalCount = response["count"];

            VkResponseArray items = response["items"];

            return(items.ToReadOnlyCollectionOf <Post>(r => r));
        }
        public static ReadOnlyCollection <Post> WallGet(int ownerId, int count = 100, int offset = 0, WallFilter filter = WallFilter.All)
        {
            var vk = GetVkApi();
            int totalCount;
            var frs = vk.Wall.Get(ownerId, out totalCount, count, offset, filter);

            return(frs);
        }
 /// <summary>Возвращает список записей со стены пользователя.</summary>
 /// <param name="owner_id">идентификатор пользователя (по умолчанию - текущий пользователь)</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества сообщений</param>
 /// <param name="count">количество сообщений, которое необходимо получить (но не более 100)</param>
 /// <param name="filter">определяет, какие типы сообщений на стене необходимо получить</param>
 /// <param name="extended">1 - будут возвращены три массива wall, profiles, и groups</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 private VKResponseBase get(System.Int64? owner_id, System.Int32? offset, System.Int32? count, WallFilter? filter, System.Boolean? extended)
 {
     manager.AddValueByName("@owner_id", owner_id);
     manager.AddValueByName("@offset", offset);
     manager.AddValueByName("@count", count);
     manager.AddValueByName("@filter", filter);
     manager.AddValueByName("@extended", extended);
     return new VKResponseBase(GetResponse("get"), IsXMLResponse);
 }
 /// <summary>Возвращает список записей со стены пользователя.</summary>
 /// <param name="filter">определяет, какие типы сообщений на стене необходимо получить</param>
 /// <param name="extended">1 - будут возвращены три массива wall, profiles, и groups</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества сообщений</param>
 /// <param name="count">количество сообщений, которое необходимо получить (но не более 100)</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 public VKResponseBase Get(WallFilter? filter = null, System.Boolean? extended = null, System.Int32? offset = null, System.Int32? count = null)
 {
     return get(null, offset, count, filter, extended);
 }
 /// <summary>Возвращает список записей со стены пользователя.</summary>
 /// <param name="owner_id">идентификатор пользователя (по умолчанию - текущий пользователь)</param>
 /// <param name="offset">смещение, необходимое для выборки определенного подмножества сообщений</param>
 /// <param name="count">количество сообщений, которое необходимо получить (но не более 100)</param>
 /// <param name="filter">определяет, какие типы сообщений на стене необходимо получить</param>
 /// <param name="extended">1 - будут возвращены три массива wall, profiles, и groups</param>
 /// <returns>Ответ сервера в XML или JSON формате.</returns>
 public VKResponseBase Get(long owner_id, int offset, int count, WallFilter? filter = null, System.Boolean? extended = null)
 {
     return get(owner_id, offset, count, filter, extended);
 }