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); }); })); }
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); }); })); }
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); }); })); }