예제 #1
0
 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);
         });
     }));
 }
예제 #2
0
        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);
                });
            }));
        }