Example #1
0
        /// <summary>
        /// 取消对某人的关注
        /// </summary>
        /// <param name="uid">用户编号</param>
        /// <param name="follow">关注对象编号</param>

        public void CancelFollow(Guid uid, Guid follow)
        {
            IRepository <UserFollow> followRep = Factory.Factory <IRepository <UserFollow> > .GetConcrete <UserFollow>();

            IRepository <UserProperty> userProRep = Factory.Factory <IRepository <UserProperty> > .GetConcrete <UserProperty>();


            UserProperty userProperty   = userProRep.Find(new Specification <UserProperty>(uf => uf.UserID == uid));
            UserProperty followProperty = userProRep.Find(new Specification <UserProperty>(uf => uf.UserID == follow));

            UserFollow userFollow = followRep.Find(new Specification <UserFollow>(uf => uf.UserID == uid && uf.Followee == follow));

            //取消关注
            followRep.Remove(userFollow);
            //持久化
            followRep.PersistAll();

            //减少关注数
            userProperty.ReduceFolloweesCount();
            //减少粉丝数
            followProperty.ReduceFollowersCount();
            userProRep.Update(userProperty);
            userProRep.Update(followProperty);
            userProRep.PersistAll();

            //短消息


            UserInfoService k         = new UserInfoService();
            UserStateModel  me        = k.GetUserInfo(uid);
            UserStateModel  follower  = k.GetUserInfo(follow);
            NewFeedModel    feedModel = new NewFeedModel()
            {
                Content = "", Sharer = me, SourceUser = follower, Subject = "", Type = FeedType.CancelSupport
            };
            BlogService my = new BlogService();

            my.CreateFeed(feedModel);
        }