Care.Views.Douban.SelectDoubanFollower.GetFriendList C# (CSharp) Method

GetFriendList() private method

private GetFriendList ( int page ) : void
page int
return void
        private void GetFriendList(int page)
        {
            m_progressIndicatorHelper.PushTask();
            String myID = PreferenceHelper.GetPreference("Douban_ID");
            if (String.IsNullOrEmpty(myID))
                return;

            if (!m_bAllListLoaded)
            {
                m_doubanAPI.GetFollowingUserList(myID, (GetFollowingUserListEventArgs e) =>
                {
                    if (e.errorCode == DoubanSdkErrCode.SUCCESS && e.userList != null)
                    {
                        m_allList = e.userList;
                        m_pageCount = (int)Math.Ceiling((double)m_allList.Count / (double)MAX_PER_PAGE);
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            FriendList.Clear();
                            int lengthLeft = m_allList.Count - page * MAX_PER_PAGE;
                            int cutLength = lengthLeft < MAX_PER_PAGE ? lengthLeft : MAX_PER_PAGE;
                            List<FollowingUserInfo> tempList = m_allList.GetRange(page * MAX_PER_PAGE, cutLength);
                            foreach (FollowingUserInfo user in tempList)
                            {
                                FriendList.Add(user);
                            }
                            m_progressIndicatorHelper.PopTask();
                        });
                    }
                    else
                    {
                        m_progressIndicatorHelper.PopTask();
                    }
                });
            }
            else
            {
                Deployment.Current.Dispatcher.BeginInvoke(() =>
                {
                    FriendList.Clear();
                    int lengthLeft = m_allList.Count - page * MAX_PER_PAGE;
                    int cutLength = lengthLeft < MAX_PER_PAGE ? lengthLeft : MAX_PER_PAGE;
                    List<FollowingUserInfo> tempList = m_allList.GetRange(page * MAX_PER_PAGE, cutLength);
                    foreach (FollowingUserInfo user in tempList)
                    {
                        FriendList.Add(user);
                    }
                    m_progressIndicatorHelper.PopTask();
                });
            }
        }