Example #1
0
 public static object fetchArticles(int offset)
 {
     return(new ThunkAction <AppState>((dispatcher, getState) => {
         return ArticleApi.FetchArticles(offset)
         .Then(articlesResponse => {
             var articleList = new List <Article>();
             articlesResponse.hottests.ForEach(item => {
                 if (articlesResponse.projectMap.ContainsKey(item.itemId))
                 {
                     var article = articlesResponse.projectMap[item.itemId];
                     articleList.Add(article);
                 }
             });
             dispatcher.dispatch(new UserMapAction {
                 userMap = articlesResponse.userMap
             });
             dispatcher.dispatch(new TeamMapAction {
                 teamMap = articlesResponse.teamMap
             });
             dispatcher.dispatch(new FetchArticleSuccessAction {
                 offset = offset,
                 hottestHasMore = articlesResponse.hottestHasMore,
                 articleList = articleList
             });
         })
         .Catch(error => {
             dispatcher.dispatch(new FetchArticleFailureAction());
             Debug.Log(error);
         });
     }));
 }
Example #2
0
 public static object fetchArticles(string userId, int offset)
 {
     return(new ThunkAction <AppState>((dispatcher, getState) => {
         var articleOffset = getState().articleState.recommendArticleIds.Count;
         if (offset != 0 && offset != articleOffset)
         {
             offset = articleOffset;
         }
         return ArticleApi.FetchArticles(userId: userId, offset: offset)
         .Then(articlesResponse => {
             var articleList = new List <Article>();
             articlesResponse.hottests.ForEach(item => {
                 if (articlesResponse.projectMap.ContainsKey(key: item.itemId))
                 {
                     var article = articlesResponse.projectMap[key: item.itemId];
                     articleList.Add(item: article);
                 }
             });
             dispatcher.dispatch(new UserMapAction {
                 userMap = articlesResponse.userMap
             });
             dispatcher.dispatch(new TeamMapAction {
                 teamMap = articlesResponse.teamMap
             });
             dispatcher.dispatch(new FollowMapAction {
                 followMap = articlesResponse.followMap
             });
             dispatcher.dispatch(new LikeMapAction {
                 likeMap = articlesResponse.likeMap
             });
             dispatcher.dispatch(new FetchArticleSuccessAction {
                 offset = offset,
                 hottestHasMore = articlesResponse.hottestHasMore,
                 articleList = articleList,
                 feedHasNew = articlesResponse.feedHasNew
             });
         })
         .Catch(error => {
             dispatcher.dispatch(new FetchArticleFailureAction());
             Debuger.LogError(message: error);
         });
     }));
 }
Example #3
0
        public static object fetchArticles(string userId, int offset)
        {
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                var articleOffset = getState().articleState.recommendArticleIds.Count;
                if (offset != 0 && offset != articleOffset)
                {
                    offset = articleOffset;
                }

                return ArticleApi.FetchArticles(userId: userId, offset: offset)
                .Then(articlesResponse => {
                    var articleList = new List <Article>();
                    articlesResponse.hottests.ForEach(item => {
                        if (articlesResponse.projectMap.ContainsKey(key: item.itemId))
                        {
                            var article = articlesResponse.projectMap[key: item.itemId];
                            articleList.Add(item: article);
                        }
                    });
                    dispatcher.dispatch(new UserMapAction {
                        userMap = articlesResponse.userMap
                    });
                    dispatcher.dispatch(new TeamMapAction {
                        teamMap = articlesResponse.teamMap
                    });
                    dispatcher.dispatch(new FollowMapAction {
                        followMap = articlesResponse.followMap
                    });
                    dispatcher.dispatch(new LikeMapAction {
                        likeMap = articlesResponse.likeMap
                    });
                    var homeSliderIds = new List <string>();
                    var homeTopCollectionIds = new List <string>();
                    var homeCollectionIds = new List <string>();
                    var homeBloggerIds = new List <string>();
                    if (articlesResponse.rankData != null)
                    {
                        // 轮播图
                        var homeSlider = articlesResponse.rankData.homeSlider ?? new HomeSlider();
                        dispatcher.dispatch(new RankListAction {
                            rankList = homeSlider.rankList
                        });
                        (homeSlider.rankList ?? new List <RankData>()).ForEach(rankData => {
                            homeSliderIds.Add(item: rankData.id);
                        });

                        // 推荐榜单
                        var homeTopCollection = articlesResponse.rankData.homeTopCollection ?? new HomeCollection();
                        dispatcher.dispatch(new RankListAction {
                            rankList = homeTopCollection.rankList
                        });
                        dispatcher.dispatch(new FavoriteTagMapAction {
                            favoriteTagMap = homeTopCollection.favoriteTagMap
                        });
                        dispatcher.dispatch(new FavoriteTagArticleMapAction {
                            favoriteTagArticleMap = homeTopCollection.favoriteTagArticleMap
                        });
                        dispatcher.dispatch(new CollectedTagMapAction {
                            collectedTagMap = homeTopCollection.collectedTagMap
                        });
                        (homeTopCollection.rankList ?? new List <RankData>()).ForEach(rankData => {
                            homeTopCollectionIds.Add(item: rankData.id);
                        });

                        // 榜单
                        var homeCollection = articlesResponse.rankData.homeCollection ?? new HomeCollection();
                        dispatcher.dispatch(new RankListAction {
                            rankList = homeCollection.rankList
                        });
                        dispatcher.dispatch(new FavoriteTagMapAction {
                            favoriteTagMap = homeCollection.favoriteTagMap
                        });
                        dispatcher.dispatch(new FavoriteTagArticleMapAction {
                            favoriteTagArticleMap = homeCollection.favoriteTagArticleMap
                        });
                        dispatcher.dispatch(new CollectedTagMapAction {
                            collectedTagMap = homeCollection.collectedTagMap
                        });
                        (homeCollection.rankList ?? new List <RankData>()).ForEach(rankData => {
                            homeCollectionIds.Add(item: rankData.id);
                        });

                        // 推荐博主
                        var homeBlogger = articlesResponse.rankData.homeBlogger ?? new FetchBloggerResponse();
                        dispatcher.dispatch(new RankListAction {
                            rankList = homeBlogger.rankList
                        });
                        dispatcher.dispatch(new UserMapAction {
                            userMap = homeBlogger.userFullMap
                        });
                        dispatcher.dispatch(new FollowMapAction {
                            followMap = homeBlogger.followMap
                        });
                        dispatcher.dispatch(new UserLicenseMapAction {
                            userLicenseMap = homeBlogger.userLicenseMap
                        });
                        (homeBlogger.rankList ?? new List <RankData>()).ForEach(rankData => {
                            homeBloggerIds.Add(item: rankData.id);
                        });
                    }

                    dispatcher.dispatch(new FetchArticleSuccessAction {
                        offset = offset,
                        hottestHasMore = articlesResponse.hottestHasMore,
                        articleList = articleList,
                        feedHasNew = articlesResponse.feedHasNew,
                        homeSliderIds = homeSliderIds,
                        homeTopCollectionIds = homeTopCollectionIds,
                        homeCollectionIds = homeCollectionIds,
                        homeBloggerIds = homeBloggerIds,
                        searchSuggest = articlesResponse.rankData?.searchSuggest,
                        dailySelectionId = articlesResponse.rankData?.dailySelectionId,
                        leaderBoardUpdatedTime = articlesResponse.rankData.leaderboardUpdatedTime
                    });
                })
                .Catch(error => {
                    dispatcher.dispatch(new FetchArticleFailureAction());
                    Debuger.LogError(message: error);
                });
            }));
        }