Care.MainPage.refreshModelDouban C# (CSharp) Method

refreshModelDouban() private method

private refreshModelDouban ( ) : void
return void
        private void refreshModelDouban()
        {
            App.ViewModel.DoubanItems.Clear();
            App.ViewModel.DoubanPicItems.Clear();

            // 如果检测到过期,则直接调用API的RefreshToken,重新来一次
            if (!String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_Token"))
                && App.DoubanAPI.IsAccessTokenOutOfDate())
            {
                App.DoubanAPI.RefreshToken((bool isSucess, DoubanSdkAuthError errCode, DoubanSdkAuth2Res response) =>
                {
                    if (errCode.errCode == DoubanSdkErrCode.SUCCESS)
                    {
                        PreferenceHelper.SetPreference("Douban_Token", response.accesssToken);
                        PreferenceHelper.SavePreference();
                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            refreshModelDouban();
                        });
                        return;
                    }
                    else
                    {

                        Deployment.Current.Dispatcher.BeginInvoke(() =>
                        {
                            if (!String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_ID")))
                            {
                                // 这里不能直接remove掉,因为有可能只是网络连接异常
                                //PreferenceHelper.RemoveDoubanLoginAccountPreference();
                                MessageBox.Show("网络连接异常或豆瓣登陆已过期~", ">_<", MessageBoxButton.OK);
                            }
                            m_progressIndicatorHelper.PopTask("Douban");
                        });
                    }
                });
            }
            else
            {
                if (String.IsNullOrEmpty(PreferenceHelper.GetPreference("Douban_ID")))
                {
                    m_progressIndicatorHelper.PopTask("Douban");
                    return;
                }

                String doubanFollowID = PreferenceHelper.GetPreference("Douban_FollowerID");
                if (String.IsNullOrEmpty(doubanFollowID))
                {
                    m_progressIndicatorHelper.PopTask("Douban");
                    return;
                }
                String strCount = PreferenceHelper.GetPreference("Douban_RecentCount");
                if (string.IsNullOrEmpty(strCount))
                {
                    strCount = "30";
                }

                App.DoubanAPI.GetUserTimeLine(doubanFollowID, int.Parse(strCount), DoubanFeedGetCallback);
            }
        }