/// <summary> /// 删除指定用户的收藏信息 /// </summary> /// <param name="uid">用户id</param> /// <param name="fitemid">要删除的收藏信息id列表</param> /// <param name="type">收藏类型</param> /// <returns>删除的条数.出错时返回 -1</returns> public static int DeleteFavorites(int uid, string[] fitemid, FavoriteType type) { foreach (string id in fitemid) { if (!Utils.IsNumeric(id)) return -1; } return Discuz.Data.Favorites.DeleteFavorites(uid, String.Join(",",fitemid), (byte)type); }
/// <summary> /// 删除指定用户的收藏信息 /// </summary> /// <param name="uid">用户id</param> /// <param name="fitemid">要删除的收藏信息id列表</param> /// <returns>删除的条数.出错时返回 -1</returns> public static int DeleteFavorites(int uid, string[] fitemid, FavoriteType type) { foreach (string id in fitemid) { if (!Utils.IsNumeric(id)) { return -1; } } string fidlist = String.Join(",",fitemid); return DatabaseProvider.GetInstance().DeleteFavorites(uid, fidlist, (byte)type); }
public static List <UserFavorite> GetList(int idChannel, int idUser, FavoriteType favoriteType) { return(Instance.Search(idChannel, new List <CondParam> { new CondParam { FieldName = "CreatedBy", Value = idUser }, new CondParam { FieldName = "Type", Value = (int)favoriteType //FavoriteType.Stgfile } })); }
public static void AddFavorite(string objectId, FavoriteType type, string tags = null) { if (!string.IsNullOrEmpty(objectId)) { var param = new Dictionary <string, object>() { ["type"] = type.ToString().ToLower(), ["favoriteId"] = objectId }; if (!string.IsNullOrEmpty(tags)) { param["tags"] = tags; } VRCApi.Request <ApiFavorite>(MainForm.Instance.OnAddFavorite, "favorites", ApiMethod.POST, param); } }
protected override void ShowPage() { pagetitle = "用户控制面板"; if (!IsLogin()) return; switch (typeid) { case 1: type = FavoriteType.Album; break; case 2: type = FavoriteType.SpacePost; break; case 3: type = FavoriteType.Goods; break; default: type = FavoriteType.ForumTopic; break; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } string titemid = DNTRequest.GetFormString("titemid"); if (Utils.StrIsNullOrEmpty(titemid) || !Utils.IsNumericList(titemid)) { AddErrLine("您未选中任何数据信息,当前操作失败!"); return; } if (Favorites.DeleteFavorites(userid, Utils.SplitString(titemid, ","), type) == -1) { AddErrLine("参数无效"); return; } SetShowBackLink(false); SetUrl("usercpsubscribe.aspx"); SetMetaRefresh(); AddMsgLine("删除完毕"); return; } else { favoriteCount = Favorites.GetFavoritesCount(userid, type); BindItems(favoriteCount, string.Format("usercpsubscribe.aspx?typeid={0}", typeid)); } }
public string GetView(object pid, object favType) { string id = GlobalSettings.Encrypt(pid.ToString()); FavoriteType ft = (FavoriteType)favType; switch (ft) { case FavoriteType.Product: return(GlobalSettings.RelativeWebRoot + "pages/view.aspx?product-product&ID=" + id); case FavoriteType.Article: return(GlobalSettings.RelativeWebRoot + "pages/view.aspx?news-newsdetail&id=" + id); break; } return("#"); }
protected void btnSave_Click(object sender, EventArgs e) { try { string t = Request.QueryString["type"]; int id = int.Parse(Request.QueryString["id"]); FavoriteType ft = FavoriteType.Outside; if (t == "p") { ft = FavoriteType.Product; } else if (t == "n") { ft = FavoriteType.Article; } else { throw new HHException(ExceptionType.NoMasterError, "待收藏链接类型错误!"); } Favorite f = new Favorite(); f.CreateTime = DateTime.Now; f.FavoriteLevel = int.Parse(hfRate.Value); f.FavoriteMemo = txtDesc.Text.Trim(); f.FavoriteTitle = txtTitle.Text.Trim(); f.FavoriteType = ft; f.FavoriteUrl = string.Empty; f.RelatedID = id; f.UpdateTime = DateTime.Now; f.UserID = Profile.AccountInfo.UserID; if (Favorites.AddFavorite(f)) { base.ExecuteJs("msg('成功收藏此产品/资讯信息!')", false); } else { base.ExecuteJs("msg('收藏对象无法保存,请联系管理员!')", false); } } catch (Exception ex) { throw new HHException(ExceptionType.NoMasterError, ex.Message); } }
private void CheckFavorite(FavoriteType favoriteType, int id, string favoriteName) { if (this.config.Maxfavorites <= Favorite.SearchCount(this.userid, null, favoriteType)) { base.AddErrLine("您收藏的" + favoriteName + "数目已经达到系统设置的数目上限"); return; } if (Favorite.SearchCount(this.userid, new Int32[] { id }, favoriteType) > 0) { base.AddErrLine("您过去已经收藏过该" + favoriteName); return; } if (Favorite.Create(this.userid, id, favoriteType) != null) { base.AddMsgLine("指定" + favoriteName + "已成功添加到收藏夹中"); base.SetUrl(this.referer); base.SetMetaRefresh(); base.SetShowBackLink(false); } }
public string GetFavoriteType(object favType) { FavoriteType ft = (FavoriteType)favType; switch (ft) { case FavoriteType.Product: return("产品"); case FavoriteType.Article: return("资讯"); break; case FavoriteType.Outside: return("外部链接"); break; } return("未知"); }
/// <summary> /// 检验收藏信息 /// </summary> /// <param name="favoriteType">收藏夹类型</param> /// <param name="id">收藏的信息ID,如:tid, albumid, blogid, goodsid</param> /// <param name="favoriteName">收藏类型名称,如:商品,文章,主题,相册</param> private void CheckFavorite(FavoriteType favoriteType, int id, string favoriteName) { // 检查用户是否拥有足够权限 if (config.Maxfavorites <= Favorites.GetFavoritesCount(userid, favoriteType)) { AddErrLine("您收藏的" + favoriteName + "数目已经达到系统设置的数目上限"); return; } if (Favorites.CheckFavoritesIsIN(userid, id, favoriteType) != 0) { AddErrLine("您过去已经收藏过该" + favoriteName); return; } if (Favorites.CreateFavorites(userid, id, favoriteType) > 0) { AddMsgLine("指定" + favoriteName + "已成功添加到收藏夹中"); SetUrl(referer); SetMetaRefresh(); SetShowBackLink(false); } }
public void DeleteAllFavorites(FavoriteType type) { Exception error = null; try { Initialize(); favorites[type].Clear(); WriteFavoritesToDisk(favorites[type], fileNames[type]); } catch (Exception e) { Debug.Assert(false); error = e; } if (Favorites_Changed != null) { Favorites_Changed(this, new FavoritesChangedEventArgs(favorites[type], error)); } }
public static List <UserFavorite> GetList(int idChannel, int idUser, FavoriteType favoriteType, long[] idDocs = null) { return(Instance.Search(idChannel, new List <CondParam> { new CondParam { FieldName = "CreatedBy", Value = idUser }, new CondParam { FieldName = "Type", Value = (int)favoriteType }, new CondParam { FieldName = "IDDoc", Operator = CondOperator.In, Value = idDocs } })); }
// Favorites Methods public void AddFavorite(FavoriteRouteAndStop favorite, FavoriteType type) { Exception error = null; try { Initialize(); // If the recent already exists delete the old instance. // This way the new one will be added with the new LastAccessed time. if (type == FavoriteType.Recent && IsFavorite(favorite, type)) { // The comparison doesn't compare the LastAccessed times so // it will remove the other copy favorites[type].Remove(favorite); } // Remove the oldest favorite if 15 entires already exist if (type == FavoriteType.Recent && favorites[type].Count >= 15) { favorites[type].Sort(new RecentLastAccessComparer()); favorites[type].RemoveAt(favorites[type].Count - 1); } favorites[type].Add(favorite); WriteFavoritesToDisk(favorites[type], fileNames[type]); } catch (Exception e) { Debug.Assert(false); error = e; } if (Favorites_Changed != null) { Favorites_Changed(this, new FavoritesChangedEventArgs(favorites[type], error)); } }
private void InvalidFileGeneric(FavoriteType type) { IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication(); using (IsolatedStorageFileStream favoritesFile = appStorage.OpenFile(fileNames[type], System.IO.FileMode.Create)) { byte[] randomData = Guid.NewGuid().ToByteArray(); favoritesFile.Write(randomData, 0, randomData.Length); } IAppDataModel appDataModel2 = new AppDataModel(); try { List <FavoriteRouteAndStop> favorites = appDataModel2.GetFavorites(type); Assert.Fail("Expected GetFavorites to throw an exception with bogus data"); // TODO this used to catch the exception and just return an empty list, which is what the test used to assert as well. // I'm not sure which behavior is correct -- I just updated the test to match the current behavior. } catch (Exception) { } }
public static DataTable GetFavoritesList(int uid, int pagesize, int pageindex, FavoriteType type) { return(BBX.Data.Favorites.GetFavoritesList(uid, pagesize, pageindex, (int)type)); }
/// <summary> /// 得到用户单个类型收藏的总数 /// </summary> /// <param name="uid">用户id</param> /// <returns>收藏总数</returns> public static int GetFavoritesCount(int uid, FavoriteType type) { return(uid > 0 ? Discuz.Data.Favorites.GetFavoritesCount(uid, (int)type) : 0); }
public bool IsFavorite(FavoriteRouteAndStop favorite, FavoriteType type) { Initialize(); return favorites[type].Contains(favorite); }
/// <summary> /// 得到用户单个类型收藏的总数 /// </summary> /// <param name="uid">用户id</param> /// <returns>收藏总数</returns> public static int GetFavoritesCount(int uid, FavoriteType type) { return uid > 0 ? Discuz.Data.Favorites.GetFavoritesCount(uid, (int)type) : 0; }
private void DeleteFavoriteGeneric(FavoriteType type) { AddAndGetFavoriteGeneric(type); appDataModel.DeleteFavorite(fakeData.FAVORITE[type], type); List<FavoriteRouteAndStop> favorites = appDataModel.GetFavorites(type); Assert.Equals(favorites.Count, 0); IAppDataModel appDataModel2 = new AppDataModel(); favorites = appDataModel2.GetFavorites(type); Assert.Equals(favorites.Count, 0); }
/// <summary> /// 得到用户单个类型收藏的总数 /// </summary> /// <param name="uid">用户id</param> /// <returns>收藏总数</returns> public static int GetFavoritesCount(int uid, FavoriteType type) { return DatabaseProvider.GetInstance().GetFavoritesCount(uid, (int)type); }
/// <summary> /// 收藏夹里是否包含了指定的项 /// </summary> /// <param name="uid">用户id</param> /// <param name="tid">项Id</param> /// <param name="type">类型: 相册, 日志, 主题</param> /// <returns></returns> public static int CheckFavoritesIsIN(int uid,int tid, FavoriteType type) { return DatabaseProvider.GetInstance().CheckFavoritesIsIN(uid, tid, (byte)type); }
/// <summary> /// 创建收藏信息 /// </summary> /// <param name="uid">用户ID</param> /// <param name="tid">主题ID</param> /// <param name="type">收藏类型</param> /// <returns>创建成功返回 1 否则返回 0</returns> public static int CreateFavorites(int uid, int tid, FavoriteType type) { return DatabaseProvider.GetInstance().CreateFavorites(uid, tid, (byte)type); }
/// <summary> /// 得到用户收藏信息列表 /// </summary> /// <param name="uid">用户id</param> /// <param name="pagesize">分页时每页的记录数</param> /// <param name="pageindex">当前页码</param> /// <param name="type">收藏类型id</param> /// <returns>用户信息列表</returns> public static DataTable GetFavoritesList(int uid, int pagesize, int pageindex, FavoriteType type) { return DatabaseProvider.GetInstance().GetFavoritesList(uid, pagesize, pageindex, (int)type); }
protected Favorite(FavoriteType type) { FavoriteID = -1; this.FavoriteType = type; }
protected override void ShowPage() { pagetitle = "用户控制面板"; if (userid == -1) { AddErrLine("你尚未登录"); return; } user = Discuz.Forum.Users.GetUserInfo(userid); typeid = DNTRequest.GetInt("typeid", 0); FavoriteType type = FavoriteType.ForumTopic; switch (typeid) { case 1: type = FavoriteType.Album; break; case 2: type = FavoriteType.SpacePost; break; case 3: type = FavoriteType.Goods; break; default: type = FavoriteType.ForumTopic; break; } if (DNTRequest.IsPost()) { if (ForumUtils.IsCrossSitePost()) { AddErrLine("您的请求来路不正确,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。"); return; } string titemid = DNTRequest.GetFormString("titemid"); if (Utils.StrIsNullOrEmpty(titemid)) { AddErrLine("您未选中任何数据信息,当前操作失败!"); return; } if (!Utils.IsNumericList(titemid)) { return; } string[] pmitemid = Utils.SplitString(titemid, ","); int retval = Favorites.DeleteFavorites(userid, pmitemid, type); if (retval == -1) { AddErrLine("参数无效"); return; } SetShowBackLink(false); AddMsgLine("删除完毕"); } else { //得到当前用户请求的页数 pageid = DNTRequest.GetInt("page", 1); //获取主题总数 topiccount = Favorites.GetFavoritesCount(userid, type); //获取总页数 pagecount = topiccount % 16 == 0 ? topiccount / 16 : topiccount / 16 + 1; if (pagecount == 0) { pagecount = 1; } //修正请求页数中可能的错误 if (pageid < 1) { pageid = 1; } if (pageid > pagecount) { pageid = pagecount; } favoriteslist = Favorites.GetFavoritesList(userid, 16, pageid, type); pagenumbers = Utils.GetPageNumbers(pageid, pagecount, string.Format("usercpsubscribe.aspx?typeid={0}", typeid.ToString()), 8); } }
private void InvalidFileGeneric(FavoriteType type) { IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication(); using (IsolatedStorageFileStream favoritesFile = appStorage.OpenFile(fileNames[type], System.IO.FileMode.Create)) { byte[] randomData = Guid.NewGuid().ToByteArray(); favoritesFile.Write(randomData, 0, randomData.Length); } IAppDataModel appDataModel2 = new AppDataModel(); try { List<FavoriteRouteAndStop> favorites = appDataModel2.GetFavorites(type); Assert.Fail("Expected GetFavorites to throw an exception with bogus data"); // TODO this used to catch the exception and just return an empty list, which is what the test used to assert as well. // I'm not sure which behavior is correct -- I just updated the test to match the current behavior. } catch (Exception) { } }
/// <summary> /// 创建收藏信息 /// </summary> /// <param name="uid">用户ID</param> /// <param name="tid">主题ID</param> /// <param name="type">收藏类型</param> /// <returns>创建成功返回 1 否则返回 0</returns> public static int CreateFavorites(int uid, int tid, FavoriteType type) { return Discuz.Data.Favorites.CreateFavorites(uid, tid, (byte)type); }
public List <FavoriteRouteAndStop> GetFavorites(FavoriteType type) { Initialize(); return(favorites[type]); }
/// <summary> /// 得到用户收藏信息列表 /// </summary> /// <param name="uid">用户id</param> /// <param name="pagesize">分页时每页的记录数</param> /// <param name="pageindex">当前页码</param> /// <param name="type">收藏类型id</param> /// <returns>用户信息列表</returns> public static DataTable GetFavoritesList(int uid, int pagesize, int pageindex, FavoriteType type) { return Discuz.Data.Favorites.GetFavoritesList(uid, pagesize, pageindex, (int)type); }
public bool IsFavorite(FavoriteRouteAndStop favorite, FavoriteType type) { Initialize(); return(favorites[type].Contains(favorite)); }
/// <summary> /// 收藏夹里是否包含了指定的项 /// </summary> /// <param name="uid">用户id</param> /// <param name="tid">项Id</param> /// <param name="type">类型: 相册, 日志, 主题</param> /// <returns></returns> public static int CheckFavoritesIsIN(int uid,int tid, FavoriteType type) { return Discuz.Data.Favorites.CheckFavoritesIsIN(uid, tid, (byte)type); }
/// <summary> /// 得到用户单个类型收藏的总数 /// </summary> /// <param name="uid">用户id</param> /// <returns>收藏总数</returns> public static int GetFavoritesCount(int uid, FavoriteType type) { return(DatabaseProvider.GetInstance().GetFavoritesCount(uid, (int)type)); }
/// <summary> /// 收藏夹里是否包含了指定的项 /// </summary> /// <param name="uid">用户id</param> /// <param name="tid">项Id</param> /// <param name="type">类型: 相册, 日志, 主题</param> /// <returns></returns> public static int CheckFavoritesIsIN(int uid, int tid, FavoriteType type) { return(DatabaseProvider.GetInstance().CheckFavoritesIsIN(uid, tid, (byte)type)); }
public List<FavoriteRouteAndStop> GetFavorites(FavoriteType type) { Initialize(); return favorites[type]; }
/// <summary> /// 创建收藏信息 /// </summary> /// <param name="uid">用户ID</param> /// <param name="tid">主题ID</param> /// <param name="type">收藏类型</param> /// <returns>创建成功返回 1 否则返回 0</returns> public static int CreateFavorites(int uid, int tid, FavoriteType type) { return(DatabaseProvider.GetInstance().CreateFavorites(uid, tid, (byte)type)); }
//public static int CreateFavorites(int uid, int tid) //{ // if (uid < 0) // { // return 0; // } // return Favorites.CreateFavorites(uid, tid, FavoriteType.ForumTopic); //} public static int CreateFavorites(int uid, int tid, FavoriteType type) { return(BBX.Data.Favorites.CreateFavorites(uid, tid, (byte)type)); }
/// <summary> /// 得到用户收藏信息列表 /// </summary> /// <param name="uid">用户id</param> /// <param name="pagesize">分页时每页的记录数</param> /// <param name="pageindex">当前页码</param> /// <param name="type">收藏类型id</param> /// <returns>用户信息列表</returns> public static DataTable GetFavoritesList(int uid, int pagesize, int pageindex, FavoriteType type) { return(DatabaseProvider.GetInstance().GetFavoritesList(uid, pagesize, pageindex, (int)type)); }
public static int CheckFavoritesIsIN(int uid, int tid, FavoriteType type) { return(BBX.Data.Favorites.CheckFavoritesIsIN(uid, tid, (byte)type)); }
public Favorite(String name, Color color, FavoriteType type) { this.Name = name; this.Color = color; this.Type = type; }