예제 #1
0
        public void SearchDialogs_ProfileAndChat_Response()
        {
            url  = "https://api.vk.com/method/messages.searchDialogs?q=Маша&access_token=token";
            json =
                @"{
                    'response': [
                      {
                        'type': 'profile',
                        'uid': 1708231,
                        'first_name': 'Григорий',
                        'last_name': 'Клюшников'
                      },
                      {
                        'type': 'chat',
                        'id': 109,
                        'title': 'Андрей, Григорий',
                        'users': [
                          66748,
                          6492,
                          1708231
                        ]
                      }
                    ]
                  }";

            SearchDialogsResponse response = Cat.SearchDialogs("Маша");

            Assert.That(response.Users.Count, Is.EqualTo(1));
            Assert.That(response.Chats.Count, Is.EqualTo(1));

            Assert.That(response.Users[0].Id, Is.EqualTo(1708231));
            Assert.That(response.Users[0].FirstName, Is.EqualTo("Григорий"));
            Assert.That(response.Users[0].LastName, Is.EqualTo("Клюшников"));

            Assert.That(response.Chats[0].Id, Is.EqualTo(109));
            Assert.That(response.Chats[0].Title, Is.EqualTo("Андрей, Григорий"));
            Assert.That(response.Chats[0].Users.Count(), Is.EqualTo(3));
            Assert.That(response.Chats[0].Users.ElementAt(0), Is.EqualTo(66748));
            Assert.That(response.Chats[0].Users.ElementAt(1), Is.EqualTo(6492));
            Assert.That(response.Chats[0].Users.ElementAt(2), Is.EqualTo(1708231));
        }
예제 #2
0
        public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null, uint limit = 20)
        {
            if (string.IsNullOrEmpty(query))
            {
                throw new ArgumentException("Query can not be null or empty.", "query");
            }
            var parameters = new VkParameters
            {
                { "q", query },
                { "fields", fields },
                { "limit", limit }
            };

            VkResponseArray response = _vk.Call("messages.searchDialogs", parameters);

            var result = new SearchDialogsResponse();

            foreach (var record in response)
            {
                string type = record["type"];
                switch (type)
                {
                case "profile":
                    result.Users.Add(record);
                    break;

                case "chat":
                    result.Chats.Add(record);
                    break;

                case "email":
                    // TODO: Add email support.
                    continue;
                }
            }
            return(result);
        }
예제 #3
0
        public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null)
        {
            if (string.IsNullOrEmpty(query))
                throw new ArgumentException("Query can not be null or empty.", "query");

            var parameters = new VkParameters { { "q", query }, { "fields", fields } };

            VkResponseArray response = _vk.Call("messages.searchDialogs", parameters);

            var result = new SearchDialogsResponse();
            foreach (var record in response)
            {
                string type = record["type"];
                if (type == "profile")
                    result.Users.Add(record);
                else if (type == "chat")
                    result.Chats.Add(record);
                // TODO: Add email support.
            }
            return result;
        }
예제 #4
0
        public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null, uint limit = 20)
        {
            if (string.IsNullOrEmpty(query))
            {
                throw new ArgumentException("Query can not be null or empty.", "query");
            }
            var parameters = new VkParameters
            {
                { "q", query },
                { "fields", fields },
                { "limit", limit }
            };

            VkResponseArray response = _vk.Call("messages.searchDialogs", parameters);

            var result = new SearchDialogsResponse();
            foreach (var record in response)
            {
                string type = record["type"];
                switch (type)
                {
                    case "profile":
                        {
                            result.Users.Add(record);
                            break;
                        }
                    case "chat":
                        {
                            result.Chats.Add(record);
                            break;
                        }
                    case "email":
                        {
                            // TODO: Add email support.
                            continue;
                        }
                }
            }
            return result;
        }