private string GetFavoriteTypeDiscriminatorValue(FavoriteTypeEnum favoriteType) { switch (favoriteType) { case FavoriteTypeEnum.Project: return("Project"); case FavoriteTypeEnum.Snapshot: return("Snapshot"); case FavoriteTypeEnum.Category: return("Category"); case FavoriteTypeEnum.Headword: return("Headword"); case FavoriteTypeEnum.Page: return("Page"); case FavoriteTypeEnum.Query: return("Query"); default: return(null); } }
/// <summary> /// 通过手机号获取收藏关系集合 /// </summary> /// <param name="phone"></param> /// <param name="favoritetype"></param> /// <returns></returns> public IList <FavoriteInfo> GetFavoriteByPhone(long phone, FavoriteTypeEnum favoritetype) { if (phone == 0) { throw new ArgumentOutOfRangeException("Favorite's phone can not be zero!"); } IList <FavoriteInfo> result = new List <FavoriteInfo>(); string key = string.Format("DB_FA_{0}_*_{1}", phone, favoritetype == FavoriteTypeEnum.所有类型 ? "*" : favoritetype.GetHashCode().ToString()); IList <string> keys = Session.Current.ScanAllKeys(key); if (keys != null && keys.Count > 0) { foreach (string k in keys) { result.Add(Session.Current.Get <FavoriteInfo>(k)); } } else { //从数据库拿取 result = DBConnectionManager.Instance.Reader.Select <FavoriteInfo>(new FavoriteSelectSpefication(phone, favoritetype).Satifasy()); if (result != null && result.Count > 0) { foreach (FavoriteInfo item in result) { //同步到缓存 Session.Current.Set(item.GetKeyName(), item); Session.Current.Expire(item.GetKeyName(), ExpireTime); } } } return(result); }
private string GetFavoriteTypeDiscriminatorValue(FavoriteTypeEnum favoriteType) { switch (favoriteType) { case FavoriteTypeEnum.Book: return("Book"); case FavoriteTypeEnum.BookVersion: return("BookVersion"); case FavoriteTypeEnum.Category: return("Category"); case FavoriteTypeEnum.HeadwordBookmark: return("HeadwordBookmark"); case FavoriteTypeEnum.PageBookmark: return("PageBookmark"); case FavoriteTypeEnum.Query: return("Query"); default: return(null); } }
/// <summary> /// 收藏选择规约 /// </summary> /// <param name="phone">收藏手机号码</param> /// <param name="type">收藏类型</param> public FavoriteSelectSpefication(long phone, FavoriteTypeEnum type) { _phone = phone; _type = type; }