コード例 #1
0
        public void GetProfileInfo(long userId, Action <BackendResult <UserData, ResultCode> > callback)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();
            string index1 = "userId";
            string str1   = userId.ToString();

            parameters[index1] = str1;
            string index2 = "func_v";
            string str2   = "3";

            parameters[index2] = str2;
            VKRequestsDispatcher.DispatchRequestToVK <UserData>("execute.getProfileInfo", parameters, callback, (Func <string, UserData>)(jsonStr =>
            {
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "relatives", false);
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "wallData", true);
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "Groups", false);
                jsonStr = VKRequestsDispatcher.FixArrayToObject(jsonStr, "personal");
                jsonStr = VKRequestsDispatcher.FixArrayToObject(jsonStr, "occupation");
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "photos", true);
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "subscriptions", true);
                jsonStr = VKRequestsDispatcher.FixFalseArray(jsonStr, "gifts", true);
                int resultCount;
                jsonStr = VKRequestsDispatcher.GetArrayCountAndRemove(jsonStr, "wall", out resultCount);
                VKRequestsDispatcher.GenericRoot <UserData> genericRoot = JsonConvert.DeserializeObject <VKRequestsDispatcher.GenericRoot <UserData> >(jsonStr);
                if (genericRoot.response.user.counters.docs == 0)
                {
                    genericRoot.response.user.counters.docs = genericRoot.response.docsCount;
                }
                return(genericRoot.response);
            }), false, true, new CancellationToken?(), null);
        }
コード例 #2
0
        public void GetNotifications(int startTime, int endTime, int offset, string fromStr, int count, Action <BackendResult <NotificationData, ResultCode> > callback)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();

            if (startTime > 0)
            {
                parameters["start_time"] = startTime.ToString();
            }
            if (endTime > 0)
            {
                parameters["end_time"] = endTime.ToString();
            }
            if (count > 0)
            {
                parameters["count"] = count.ToString();
            }
            if (offset > 0)
            {
                parameters["offset"] = offset.ToString();
            }
            if (!string.IsNullOrWhiteSpace(fromStr))
            {
                parameters["start_from"] = fromStr;
            }
            parameters["fields"] = "sex,photo_50,photo_100,online,screen_name,first_name_dat,last_name_dat,first_name_gen,last_name_gen";
            Dictionary <string, string> dictionary = parameters;

            dictionary["fields"] = dictionary["fields"] + ",is_closed,type,is_admin,is_member,photo_200";
            VKRequestsDispatcher.DispatchRequestToVK <NotificationData>("notifications.get", parameters, callback, (Func <string, NotificationData>)(jsonStr =>
            {
                int resultCount                      = 0;
                jsonStr                              = VKRequestsDispatcher.GetArrayCountAndRemove(jsonStr, "items", out resultCount);
                jsonStr                              = VKRequestsDispatcher.FixFalseArray(jsonStr, "profiles", false);
                jsonStr                              = VKRequestsDispatcher.FixFalseArray(jsonStr, "groups", false);
                NotificationData response            = JsonConvert.DeserializeObject <GenericRoot <NotificationData> >(jsonStr).response;
                response.TotalCount                  = resultCount;
                List <Notification> notificationList = new List <Notification>();
                foreach (Notification notification in response.items)
                {
                    notification.UpdateNotificationType();
                    object parsedFeedback = notification.ParsedFeedback;
                    object parsedParent   = notification.ParsedParent;
                    if (notification.NotType == NotificationType.unknown)
                    {
                        notificationList.Add(notification);
                    }
                }
                foreach (Notification notification in notificationList)
                {
                    response.items.Remove(notification);
                }
                return(response);
            }), false, true, new CancellationToken?(), null);
        }
コード例 #3
0
        public void GetAllTracksAndAlbums(long userOrGroupId, bool isGroup, Action <BackendResult <AudioData, ResultCode> > callback)
        {
            Dictionary <string, string> parameters = new Dictionary <string, string>();
            string str = string.Format("var allTracks = API.audio.get({{{0}:\"{1}\", count:\"{2}\", offset:\"0\"}}).items;\r\n                                            var allAlbums = API.audio.getAlbums({{{0}:\"{1}\", count:\"{3}\", offset:\"0\"}}).items;\r\n                                            return {{\"allTracks\":allTracks, \"allAlbums\":allAlbums}};", (isGroup ? "group_id" : "user_id"), userOrGroupId, VKConstants.TracksReadCount.ToString(), VKConstants.AlbumsReadCount.ToString());

            parameters["code"] = str;
            VKRequestsDispatcher.DispatchRequestToVK <AudioData>("execute", parameters, callback, (Func <string, AudioData>)(jsonStr =>
            {
                AudioData audioData = new AudioData();
                int resultCount;
                jsonStr                 = VKRequestsDispatcher.GetArrayCountAndRemove(jsonStr, "allAlbums", out resultCount);
                AudioData response      = JsonConvert.DeserializeObject <AudioDataRoot>(jsonStr).response;
                response.AllAlbumsCount = resultCount;
                return(response);
            }), false, true, new CancellationToken?(), null);
        }