示例#1
0
        public static object cancelCollectFavoriteTag(string tagId, string itemId)
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            return(new ThunkAction <AppState>((dispatcher, getState) => {
                dispatcher.dispatch(new ChangeFavoriteTagStateAction {
                    isLoading = true
                });
                return FavoriteApi.DeleteFavoriteTag(tagId: tagId, itemId.isNotEmpty() ? "" : tagId)
                .Then(deleteFavoriteTagResponse => {
                    dispatcher.dispatch(new DeleteFavoriteTagSuccessAction {
                        favoriteTag = deleteFavoriteTagResponse
                    });
                    dispatcher.dispatch(new CancelCollectFavoriteTagSuccessAction
                    {
                        itemId = itemId.isEmpty() ? tagId : itemId
                    });
                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.cancelCollect);
                })
                .Catch(error => {
                    dispatcher.dispatch(new ChangeFavoriteTagStateAction());
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#2
0
        public static object deleteFavoriteTag(string tagId)
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            CustomDialogUtils.showCustomDialog(
                child: new CustomLoadingDialog(
                    message: "删除收藏夹中"
                    )
                );
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                return FavoriteApi.DeleteFavoriteTag(tagId: tagId)
                .Then(deleteFavoriteTagResponse => {
                    CustomDialogUtils.hiddenCustomDialog();
                    dispatcher.dispatch(new DeleteFavoriteTagSuccessAction {
                        favoriteTag = deleteFavoriteTagResponse
                    });
                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.delete);
                })
                .Catch(error => {
                    CustomDialogUtils.hiddenCustomDialog();
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#3
0
        public static object collectFavoriteTag(string itemId, string rankDataId = "", string tagId = "")
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            return(new ThunkAction <AppState>((dispatcher, getState) => {
                dispatcher.dispatch(new ChangeFavoriteTagStateAction {
                    isLoading = true
                });
                return FavoriteApi.CollectFavoriteTag(tagId: itemId)
                .Then(collectFavoriteTagResponse => {
                    dispatcher.dispatch(new CreateFavoriteTagSuccessAction {
                        favoriteTag = collectFavoriteTagResponse.favoriteTag,
                        isCollection = true
                    });
                    dispatcher.dispatch(new CollectFavoriteTagSuccessAction {
                        myFavoriteTagId = collectFavoriteTagResponse.favoriteTag.id,
                        rankDataId = rankDataId,
                        itemId = itemId,
                        tagId = tagId
                    });


                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.collect);
                })
                .Catch(error => {
                    dispatcher.dispatch(new ChangeFavoriteTagStateAction());
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#4
0
        public static object createFavoriteTag(IconStyle iconStyle, string name, string description = "")
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            CustomDialogUtils.showCustomDialog(
                child: new CustomLoadingDialog(
                    message: "新建收藏夹中"
                    )
                );
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                return FavoriteApi.CreateFavoriteTag(iconStyle: iconStyle, name: name, description: description)
                .Then(createFavoriteTagResponse => {
                    CustomDialogUtils.hiddenCustomDialog();
                    dispatcher.dispatch(new CreateFavoriteTagSuccessAction {
                        favoriteTag = createFavoriteTagResponse
                    });
                    dispatcher.dispatch(new MainNavigatorPopAction());
                })
                .Catch(error => {
                    CustomDialogUtils.hiddenCustomDialog();
                    Debug.Log(error);
                });
            }));
        }
示例#5
0
        public static object editFavoriteTag(IconStyle iconStyle, string tagId, string name, string description = "")
        {
            if (HttpManager.isNetWorkError())
            {
                CustomDialogUtils.showToast("请检查网络", iconData: Icons.sentiment_dissatisfied);
                return(null);
            }

            CustomDialogUtils.showCustomDialog(
                child: new CustomLoadingDialog(
                    message: "编辑收藏夹中"
                    )
                );
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                return FavoriteApi
                .EditFavoriteTag(tagId: tagId, iconStyle: iconStyle, name: name, description: description)
                .Then(editFavoriteTagResponse => {
                    CustomDialogUtils.hiddenCustomDialog();
                    dispatcher.dispatch(new EditFavoriteTagSuccessAction {
                        favoriteTag = editFavoriteTagResponse
                    });
                    dispatcher.dispatch(new MainNavigatorPopAction());
                    AnalyticsManager.AnalyticsHandleFavoriteTag(type: FavoriteTagType.edit);
                })
                .Catch(error => {
                    CustomDialogUtils.hiddenCustomDialog();
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#6
0
        public static object fetchFavoriteTags(string userId, int offset)
        {
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                var favoriteTagIds = getState().favoriteState.favoriteTagIdDict.ContainsKey(key: userId)
                    ? getState().favoriteState.favoriteTagIdDict[key: userId]
                    : new List <string>();
                var favoriteTagIdCount = favoriteTagIds.Count;
                if (offset != 0 && offset != favoriteTagIdCount)
                {
                    offset = favoriteTagIdCount;
                }

                return FavoriteApi.FetchFavoriteTags(userId: userId, offset: offset)
                .Then(favoritesResponse => {
                    dispatcher.dispatch(new FetchFavoriteTagSuccessAction {
                        userId = userId,
                        offset = offset,
                        hasMore = favoritesResponse.hasMore,
                        favoriteTags = favoritesResponse.favoriteTags
                    });
                })
                .Catch(error => {
                    dispatcher.dispatch(new FetchFavoriteTagFailureAction());
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#7
0
 public EditFavFolderDialog(string id, string title, string desc, bool isOpen)
 {
     this.InitializeComponent();
     favoriteApi            = new FavoriteApi();
     this.id                = id;
     txtTitle.Text          = title;
     txtDesc.Text           = desc;
     checkPrivacy.IsChecked = isOpen;
 }
示例#8
0
 public CopyOrMoveFavVideoDialog(string fid, string mid, bool isMove, List <FavoriteInfoVideoItemModel> items)
 {
     this.InitializeComponent();
     favoriteApi      = new FavoriteApi();
     this.fid         = fid;
     this.mid         = mid;
     this.isMove      = isMove;
     this.selectItems = items;
     LoadFav();
 }
示例#9
0
        public static object fetchFollowFavoriteTags(string userId, int offset)
        {
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                var favoriteTagIds = getState().favoriteState.followFavoriteTagIdDict.ContainsKey(key: userId)
                    ? getState().favoriteState.followFavoriteTagIdDict[key: userId]
                    : new List <string>();
                var favoriteTagIdCount = favoriteTagIds.Count;
                if (offset != 0 && offset != favoriteTagIdCount)
                {
                    offset = favoriteTagIdCount;
                }

                return FavoriteApi.FetchFollowFavoriteTags(userId: userId, offset: offset)
                .Then(favoritesResponse => {
                    var newFavoriteTagIds = new List <string>();
                    var favoriteTagMap = new Dictionary <string, FavoriteTag>();
                    favoritesResponse.favoriteTags.ForEach(favoriteTag => {
                        newFavoriteTagIds.Add(item: favoriteTag.id);
                        favoriteTagMap.Add(key: favoriteTag.id, value: favoriteTag);
                    });
                    dispatcher.dispatch(new CollectedTagMapAction {
                        collectedTagMap = favoritesResponse.collectedMap
                    });
                    if (favoritesResponse.myFavoriteTagMap.isNotNullAndEmpty())
                    {
                        dispatcher.dispatch(new MyFavoriteTagMapAction
                        {
                            favoriteTagMap = favoritesResponse.myFavoriteTagMap
                        });
                    }

                    dispatcher.dispatch(new FavoriteTagMapAction {
                        favoriteTagMap = favoriteTagMap
                    });
                    dispatcher.dispatch(new FetchFollowFavoriteTagSuccessAction {
                        userId = userId,
                        offset = offset,
                        hasMore = favoritesResponse.hasMore,
                        favoriteTagIds = newFavoriteTagIds
                    });
                })
                .Catch(error => {
                    dispatcher.dispatch(new FetchFollowFavoriteTagFailureAction());
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#10
0
        public static object fetchFavoriteDetail(string userId, string tagId, int offset)
        {
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                var favoriteTagId = tagId.isNotEmpty() ? tagId : $"{userId}all";
                var favoriteDetailArticleIds =
                    getState().favoriteState.favoriteDetailArticleIdDict.ContainsKey(key: favoriteTagId)
                        ? getState().favoriteState.favoriteDetailArticleIdDict[key: favoriteTagId]
                        : new List <string>();
                var favoriteDetailArticleCount = favoriteDetailArticleIds.Count;
                if (offset != 0 && offset != favoriteDetailArticleCount)
                {
                    offset = favoriteDetailArticleCount;
                }

                return FavoriteApi.FetchFavoriteDetail(userId: userId, tagId: tagId, offset: offset)
                .Then(favoriteDetailResponse => {
                    dispatcher.dispatch(new UserMapAction {
                        userMap = favoriteDetailResponse.userMap
                    });
                    dispatcher.dispatch(new TeamMapAction {
                        teamMap = favoriteDetailResponse.teamMap
                    });
                    dispatcher.dispatch(new FavoriteTagMapAction {
                        favoriteTagMap = favoriteDetailResponse.tagMap
                    });
                    dispatcher.dispatch(new ArticleMapAction
                    {
                        articleMap = favoriteDetailResponse.projectSimpleMap
                    });
                    dispatcher.dispatch(new FetchFavoriteDetailSuccessAction {
                        favorites = favoriteDetailResponse.favorites,
                        hasMore = favoriteDetailResponse.hasMore,
                        tagId = tagId,
                        userId = userId,
                        offset = offset
                    });
                })
                .Catch(error => {
                    dispatcher.dispatch(new FetchFavoriteDetailFailureAction());
                    Debuger.LogError(message: error);
                });
            }));
        }
示例#11
0
        public static object fetchFavoriteTags(string userId, int offset)
        {
            return(new ThunkAction <AppState>((dispatcher, getState) => {
                var favoriteTagIdCount = getState().favoriteState.favoriteTagIds.Count;
                if (offset != 0 && offset != favoriteTagIdCount)
                {
                    offset = favoriteTagIdCount;
                }

                return FavoriteApi.FetchFavoriteTags(userId: userId, offset: offset)
                .Then(favoritesResponse => {
                    dispatcher.dispatch(new FetchFavoriteTagSuccessAction {
                        offset = offset,
                        hasMore = favoritesResponse.hasMore,
                        favoriteTags = favoritesResponse.favoriteTags
                    });
                })
                .Catch(error => {
                    dispatcher.dispatch(new FetchFavoriteTagFailureAction());
                    Debug.Log(error);
                });
            }));
        }
 public CreateFavFolderDialog()
 {
     this.InitializeComponent();
     favoriteApi = new FavoriteApi();
 }