public static object fetchLeaderBoardColumn(int page) { return(new ThunkAction <AppState>((dispatcher, getState) => { return LeaderBoardApi.FetchLeaderBoardColumn(page: page) .Then(columnResponse => { dispatcher.dispatch(new RankListAction { rankList = columnResponse.rankList }); dispatcher.dispatch(new UserMapAction { userMap = columnResponse.userSimpleV2Map }); var columnIds = new List <string>(); columnResponse.rankList.ForEach(rankData => { columnIds.Add(item: rankData.id); }); dispatcher.dispatch(new FetchLeaderBoardColumnSuccessAction { columnIds = columnIds, userArticleMap = columnResponse.userArticleMap, hasMore = columnResponse.hasMore, pageNumber = page }); }) .Catch(error => { dispatcher.dispatch(new FetchLeaderBoardColumnFailureAction()); Debuger.LogError(message: error); }); })); }
public static object fetchLeaderBoardDetail(string tagId, int page, LeaderBoardType type) { return(new ThunkAction <AppState>((dispatcher, getState) => { return LeaderBoardApi.FetchLeaderBoardDetail(tagId: tagId, page: page, leaderBoardType: type) .Then(detailResponse => { dispatcher.dispatch(new UserMapAction { userMap = detailResponse.userSimpleV2Map }); dispatcher.dispatch(new TeamMapAction { teamMap = detailResponse.teamSimpleMap }); var articleIds = new List <string>(); var articleDict = new Dictionary <string, Article>(); detailResponse.projectSimples.ForEach(project => { articleIds.Add(item: project.id); articleDict.Add(key: project.id, value: project); }); dispatcher.dispatch(new ArticleMapAction { articleMap = articleDict }); dispatcher.dispatch(new FetchLeaderBoardDetailSuccessAction { type = type, albumId = tagId, articleList = articleIds, hasMore = detailResponse.hasMore, pageNumber = page }); dispatcher.dispatch(new FavoriteTagMapAction { favoriteTagMap = detailResponse.favoriteTagMap }); dispatcher.dispatch(new FavoriteTagArticleMapAction { favoriteTagArticleMap = detailResponse.favoriteTagArticleMap }); dispatcher.dispatch(new CollectedTagMapAction { collectedTagMap = detailResponse.collectedTagMap }); if (type == LeaderBoardType.collection) { if (detailResponse.myFavoriteTag != null) { detailResponse.rankData.myFavoriteTagId = detailResponse.myFavoriteTag.id; } dispatcher.dispatch(new RankListAction { rankList = new List <RankData> { detailResponse.rankData } }); } }) .Catch(error => { dispatcher.dispatch(new FetchLeaderBoardDetailFailureAction()); Debuger.LogError(message: error); }); })); }