ContainsKey() public méthode

Определяет, содержит ли JSON указанный ключ.
public ContainsKey ( string key ) : bool
key string Ключ.
Résultat bool
Exemple #1
0
		internal static Relative FromJson(VkResponse response)
		{
			var relative = new Relative();

			// Согласно документации VK API, должно возвращаться поле id, однако фактически может возвращаться uid (для старых версий API).
			// Можно будет парсить только id после перевода всех методов на более новые версии (как минимум Users.Search).
			if (response.ContainsKey("id"))
				relative.Id = response["id"];
			else if (response.ContainsKey("uid"))
				relative.Id = response["uid"];
			
			relative.Type = response["type"];
			relative.Name = response["name"];

			return relative;
		}
Exemple #2
0
        // --------------------------------------------------------------------------------------------

        /// <summary>
        /// В специальную коллекцию данных vk с общим количеством.
        /// </summary>
        /// <typeparam name="T">Тип данных</typeparam>
        /// <param name="response">Ответ vk.com.</param>
        /// <param name="selector">Функция выборки.</param>
        /// <returns>Специальная коллекция данных vk с общим количеством.</returns>
        public static VkCollection <T> ToVkCollectionOf <T>(this VkResponse response, Func <VkResponse, T> selector)
        {
            if (response == null)
            {
                return(new VkCollection <T>(0, Enumerable.Empty <T>()));
            }

            VkResponseArray data = response.ContainsKey("items") ?
                                   response["items"]
                                : response;

            var resultCollection = data.ToCollectionOf(selector);

            var totalCount = response.ContainsKey("count") ?
                             response["count"]
                                : (ulong)resultCollection.Count;

            return(new VkCollection <T>(totalCount, resultCollection));
        }
Exemple #3
0
        // --------------------------------------------------------------------------------------------

        /// <summary>
        /// В специальную коллекцию данных vk с общим количеством.
        /// </summary>
        /// <typeparam name="T"> Тип данных </typeparam>
        /// <param name="response"> Ответ vk.com. </param>
        /// <param name="selector"> Функция выборки. </param>
        /// <param name="arrayName"> Наименование поля массива </param>
        /// <returns> Специальная коллекция данных vk с общим количеством. </returns>
        public static VkCollection <T> ToVkCollectionOf <T>(this VkResponse response
                                                            , Func <VkResponse, T> selector
                                                            , string arrayName = "items")
        {
            if (response == null)
            {
                return(new VkCollection <T>(totalCount: 0, list: Enumerable.Empty <T>()));
            }

            VkResponseArray data = response.ContainsKey(key: arrayName)
                                        ? response[key : arrayName]
                                   : response;

            var resultCollection = data.ToReadOnlyCollectionOf(selector: selector);

            var totalCount = response.ContainsKey(key: "count")
                                        ? response[key : "count"]
                             : (ulong)resultCollection.Count;

            return(new VkCollection <T>(totalCount: totalCount, list: resultCollection));
        }
Exemple #4
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        public static AppGetObject FromJson(VkResponse response)
        {
            AppGetObject appGetObject;
            if (response.ContainsKey("items"))
            {
                appGetObject = new AppGetObject
                {
                    TotalCount = response["count"],
                    Apps = response["items"].ToVkCollectionOf<App>(r => r),
                    Friends = response["profiles"].ToVkCollectionOf<User>(r => r)
                };
            } else
            {
                appGetObject = new AppGetObject
                {
                    TotalCount = response["count"],
                    Apps = response["items"].ToVkCollectionOf<App>(r => r)
                };
            }

            return appGetObject;
        }
Exemple #5
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        /// <exception cref="System.Exception">"Типа '{0}' не существует. Пожалуйста заведите задачу на сайте проекта: https://github.com/vknet/vk/issues"</exception>
        internal static UserOrGroup FromJson(VkResponse response)
        {
            var userOrGroup = new UserOrGroup
            {
                Users = new List<User>(),
                Groups = new List<Group>()
            };

            if (response.ContainsKey("count"))
            {
                userOrGroup.TotalCount = response["count"];
            }

            VkResponseArray result = response;
            foreach (var item in result)
            {
                switch (item["type"].ToString())
                {
                    case "group":
                        {
                            Group @group = item;
                            userOrGroup.Groups.Add(@group);
                        }
                        break;
                    case "profile":
                        {
                            User user = item;
                            userOrGroup.Users.Add(user);
                        }
                        break;
                    default:
                        {
                            throw new System.Exception(string.Format("Типа '{0}' не существует. Пожалуйста заведите задачу на сайте проекта: https://github.com/vknet/vk/issues", item["type"]));
                        }
                }
            }
            return userOrGroup;
        }
Exemple #6
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        internal static WallGetObject FromJson(VkResponse response)
        {
            WallGetObject wallGetObject;
            if (response.ContainsKey("items"))
            {
                wallGetObject = new WallGetObject
                {
                    TotalCount = response["count"],
                    WallPosts = response["items"].ToReadOnlyCollectionOf<Post>(r => r),
                    Profiles = response["profiles"].ToReadOnlyCollectionOf<User>(r => r),
                    Groups = response["groups"].ToReadOnlyCollectionOf<Group>(r => r)
                };
            }
            else
            {
                wallGetObject = new WallGetObject
                {
                    WallPosts = response.ToReadOnlyCollectionOf<Post>(r => r)
                };
            }

            return wallGetObject;
        }
Exemple #7
0
        internal static Group FromJson(VkResponse response)
        {
            var group = new Group();

            group.Id = response["id"] ?? response["gid"];
            group.Name = response["name"];
            group.ScreenName = response["screen_name"];
            group.IsClosed = response["is_closed"];
            group.IsAdmin = response["is_admin"];
            group.AdminLevel = response["admin_level"];
            group.IsMember = response["is_member"];
            group.Type = response["type"];
            group.PhotoPreviews = response;

            // опциональные поля
            group.CityId = response.ContainsKey("city") ? response["city"]["id"] : null;
            group.CountryId = response.ContainsKey("country") ? response["country"]["id"] : null;
            group.Place = response["place"];
            group.Description = response["description"];
            group.WikiPage = response["wiki_page"];
            group.MembersCount = response["members_count"];
            group.Counters = response["counters"];
            group.StartDate = response["start_date"];
            group.EndDate = response["finish_date"] ?? response["end_date"];
            group.CanPost = response["can_post"];
            group.CanSeelAllPosts = response["can_see_all_posts"];
            group.CanUploadDocuments = response["can_upload_doc"];
            group.CanCreateTopic = response["can_create_topic"];
            group.Activity = response["activity"];
            group.Status = response["status"];
            group.Contacts = response["contacts"];
            group.Links = response["links"];
            group.FixedPostId = response["fixed_post"];
            group.IsVerified = response["verified"];
            group.Site = response["site"];
            group.InvitedBy = response["invited_by"];

            return group;
        }
Exemple #8
0
        internal static PhotoAlbum FromJson(VkResponse response)
        {
            var album = new PhotoAlbum();

            if (response.ContainsKey("aid"))
                album.Id = response["aid"];
            else
                album.Id = response["id"];
            album.ThumbId = Utilities.GetNullableLongId(response["thumb_id"]);
            album.OwnerId = Utilities.GetNullableLongId(response["owner_id"]);
            album.Title = response["title"];
            album.Description = response["description"];
            album.Created = response["created"];
            album.Updated = response["updated"];
            album.Size = response["size"];
            album.Privacy = Utilities.GetNullableLongId(response["privacy"]);
            album.CommentPrivacy = Utilities.GetNullableLongId(response["comment_privacy"]);
            album.CanUpload = response["can_upload"];
            album.PrivacyView = response["privacy_view"];
            album.ThumbSrc = response["thumb_src"];

            return album;
        }
Exemple #9
0
        /// <summary>
        /// Разобрать из json.
        /// </summary>
        /// <param name="response">Ответ сервера.</param>
        /// <returns></returns>
        public static PushSettings FromJson(VkResponse response)
        {
            var result = new PushSettings
            {
                Msg = response["msg"],
                Chat = response["chat"],
                Friend = response.ContainsKey("friend") && response["mutual"],
                FriendFound = response["friend_found"],
                FriendAccepted = response["friend_accepted"],
                Reply = response["reply"],
                Comment = response.ContainsKey("comment") && response["fr_of_fr"],
                Mention = response.ContainsKey("mention") && response["fr_of_fr"],
                Like = response.ContainsKey("like") && response["fr_of_fr"],
                Repost = response.ContainsKey("repost") && response["fr_of_fr"],
                WallPost = response["wall_post"],
                WallPublish = response["wall_publish"],
                GroupInvite = response["group_invite"],
                GroupAccepted = response["group_accepted"],
                EventSoon = response["event_soon"],
                TagPhoto = response.ContainsKey("tag_photo") && response["fr_of_fr"],
                AppRequest = response["app_request"],
                SdkOpen = response["sdk_open"],
                NewPost = response["new_post"],
                Birthday = response["birthday"]
            };

            return result;
        }