Esempio n. 1
0
        /// <summary>
        /// 回复用户留言
        /// </summary>
        /// <param name="loginUserId">登录用户编号</param>
        /// <param name="commentContent">留言内容</param>
        /// <param name="ownerUserId">留言的用户空间用户编号</param>
        /// <param name="commentId">留言编号</param>
        /// <returns></returns>
        public int ReplySpaceComment(int loginUserId, int ownerUserId, int commentId, string commentContent)
        {
            var success = false;

            #region 验证输入
            AssertUtil.AreBigger(loginUserId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_loginUserId"));
            AssertUtil.AreBigger(ownerUserId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_ownerUserId"));
            AssertUtil.AreBigger(commentId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_commentId"));
            AssertUtil.NotNullOrWhiteSpace(commentContent, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_commentContent"));
            AssertUtil.AreSmallerOrEqual(commentContent.Length, 140, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_commentContentLength"));
            #endregion

            var id = Execute <int>((db) =>
            {
                #region 验证数据库是否存在
                var loginUser = db.User.FirstOrDefault(u => u.State == false && u.Id == loginUserId);
                AssertUtil.IsNotNull(loginUser, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_loginUser"));
                var toUser = db.User.FirstOrDefault(u => u.State == false && u.Id == ownerUserId);
                AssertUtil.IsNotNull(toUser, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_toUser"));
                var parentComment = db.Comments.FirstOrDefault(c => c.State >= 0 &&
                                                               c.Id == commentId &&
                                                               c.EntityType == (int)CommentEnum.User &&
                                                               c.EntityId == toUser.Id);
                AssertUtil.IsNotNull(parentComment, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_parentComment"));
                #endregion

                AssertUtil.AreNotEqual(loginUser.Id, parentComment.FromUserId, LanguageUtil.Translate("api_Repository_Comments_ReplySpaceComment_notReplySelf"));
                var comment = new Comments()
                {
                    FromUserId   = loginUser.Id,
                    ToUserId     = parentComment.FromUserId,
                    EntityType   = (int)CommentEnum.User,
                    EntityId     = toUser.Id,
                    Content      = commentContent,
                    CreateUserId = loginUser.Id,
                    CreateTime   = DateTime.Now,
                    ParentId     = parentComment.Id,
                    LocalPath    = GetLocalPath(parentComment.LocalPath, parentComment.Id)
                };
                db.Comments.Add(comment);
                parentComment.ReplyNum                 = parentComment.ReplyNum + 1;
                db.Entry(parentComment).State          = EntityState.Modified;
                db.Configuration.ValidateOnSaveEnabled = false;
                success = db.SaveChanges() > 0;
                if (success)
                {
                    comment.LocalPath = GetLocalPath(parentComment.LocalPath, comment.Id);
                    db.Entry <Comments>(comment).State = EntityState.Modified;
                    //添加消息通知
                    var sysMessage = new SysMessage()
                    {
                        Content        = comment.Content,
                        CreateManageId = 1,
                        CreateTime     = DateTime.Now,
                        EntityId       = comment.Id,
                        EntityType     = (int)SysMessageEnum.SpaceComment,
                        SendType       = (int)SystemMessageEnum.ByUser
                    };
                    //回复留言不是空间所属者
                    if (toUser.Id != loginUser.Id && parentComment.FromUserId != toUser.Id)
                    {
                        sysMessage.ToUserIds = toUser.Id + "|" + parentComment.FromUserId;//通知空间所属者和接受者
                    }
                    else
                    {
                        sysMessage.ToUserIds = parentComment.FromUserId + "";////通知接受者
                    }
                    db.SysMessage.Add(sysMessage);
                    db.Configuration.ValidateOnSaveEnabled = false;
                    success = db.SaveChanges() > 0;
                }
                return(comment.Id);
            });
            if (success)
            {
                CreateCache <Comments>();
                CreateCache <SysMessage>();
            }
            return(id);
        }
Esempio n. 2
0
        /// <summary>
        /// 回复视频评论
        /// </summary>
        /// <param name="loginUserId"></param>
        /// <param name="commentContent"></param>
        /// <param name="videoId"></param>
        /// <param name="commentId"></param>
        /// <returns></returns>
        public int ReplyVideoComment(int loginUserId, int videoId, int commentId, string commentContent)
        {
            var success = false;

            #region 验证参数是否正确
            AssertUtil.AreBigger(loginUserId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_loginUserId"));
            AssertUtil.AreBigger(videoId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_videoId"));
            AssertUtil.AreBigger(commentId, 0, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_commentId"));
            AssertUtil.NotNullOrWhiteSpace(commentContent, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_commentContent"));
            AssertUtil.AreSmallerOrEqual(commentContent.Length, 140, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_commentContentLength"));
            #endregion

            var id = Execute <int>((db) =>
            {
                #region 验证数据库是否存在
                var loginUser = db.User.FirstOrDefault(u => u.State == false && u.Id == loginUserId);
                AssertUtil.IsNotNull(loginUser, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_loginUser"));
                var video = db.Video.FirstOrDefault(v => v.State == false && v.Id == videoId);
                AssertUtil.IsNotNull(video, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_video"));
                var parentComment = db.Comments.FirstOrDefault(c => c.State >= 0 &&
                                                               c.Id == commentId &&
                                                               c.EntityType == (int)CommentEnum.Video &&
                                                               c.EntityId == video.Id);
                AssertUtil.IsNotNull(parentComment, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_parentComment"));
                #endregion

                AssertUtil.AreNotEqual(loginUser.Id, parentComment.FromUserId, LanguageUtil.Translate("api_Repository_Comments_ReplyVideoComment_notReplySelf"));
                var comment = new Comments()
                {
                    FromUserId   = loginUser.Id,
                    ToUserId     = parentComment.FromUserId,
                    EntityType   = (int)CommentEnum.Video,
                    EntityId     = (int)video.Id,
                    Content      = commentContent,
                    CreateUserId = loginUser.Id,
                    CreateTime   = DateTime.Now,
                    ParentId     = parentComment.Id,
                    LocalPath    = GetLocalPath(parentComment.LocalPath, parentComment.Id)
                };
                db.Comments.Add(comment);
                //回复次数加一
                parentComment.ReplyNum++;
                db.Entry <Comments>(parentComment).State = EntityState.Modified;
                video.CommentCount                     = video.CommentCount + 1;
                db.Entry <Video>(video).State          = EntityState.Modified;
                db.Configuration.ValidateOnSaveEnabled = false;
                success = db.SaveChanges() > 0;
                if (success)
                {
                    comment.LocalPath = GetLocalPath(parentComment.LocalPath, comment.Id);
                    db.Entry <Comments>(comment).State = EntityState.Modified;
                    //添加消息通知
                    var sysMessage = new SysMessage()
                    {
                        Content        = comment.Content,
                        CreateManageId = 1,
                        CreateTime     = DateTime.Now,
                        EntityId       = comment.Id,
                        EntityType     = (int)SysMessageEnum.VideoComment,
                        SendType       = (int)SystemMessageEnum.ByUser
                    };
                    //回复的人不是上传者
                    if (video.CreateManageId != loginUser.Id && parentComment.FromUserId != video.CreateManageId)
                    {
                        sysMessage.ToUserIds = video.CreateManageId + "|" + parentComment.FromUserId; //通知上传者和接受者,上传者在自己视频下回复不通知
                    }
                    else
                    {
                        sysMessage.ToUserIds = parentComment.FromUserId + ""; //通知接受者
                    }
                    db.SysMessage.Add(sysMessage);
                    db.Configuration.ValidateOnSaveEnabled = false;
                    success = db.SaveChanges() > 0;
                }
                return(comment.Id);
            });
            if (success)
            {
                CreateCache <Video>();
                CreateCache <Comments>();
                CreateCache <SysMessage>();
            }
            return(id);
        }
Esempio n. 3
0
        /// <summary>
        /// 用户空间留言
        /// </summary>
        /// <param name="loginUserId">登录用户编号</param>
        /// <param name="ownerUserId">留言空间用户编号</param>
        /// <param name="commentContent">留言内容</param>
        /// <returns></returns>
        public int CreateSpaceComment(int loginUserId, int ownerUserId, string commentContent)
        {
            var success = false;

            #region 验证输入
            AssertUtil.AreBigger(loginUserId, 0, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_loginUserId"));
            AssertUtil.AreBigger(ownerUserId, 0, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_ownerUserId"));
            AssertUtil.NotNullOrWhiteSpace(commentContent, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_commentContent"));
            AssertUtil.AreSmallerOrEqual(commentContent.Length, 140, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_commentContentLength"));
            #endregion

            var id = Execute <int>((db) =>
            {
                #region 验证数据库是否存在
                var loginUser = db.User.FirstOrDefault(u => u.State == false && u.Id == loginUserId);
                AssertUtil.IsNotNull(loginUser, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_loginUser"));
                var toUser = db.User.FirstOrDefault(u => u.State == false && u.Id == ownerUserId);
                AssertUtil.IsNotNull(toUser, LanguageUtil.Translate("api_Repository_Comments_CreateSpaceComment_toUser"));
                #endregion

                var comment = new Comments()
                {
                    FromUserId   = loginUser.Id,
                    ToUserId     = toUser.Id,
                    EntityType   = (int)CommentEnum.User,
                    EntityId     = (int)toUser.Id,
                    Content      = commentContent,
                    CreateUserId = loginUser.Id,
                    CreateTime   = DateTime.Now,
                    LocalPath    = ""//发表视频评论的位置为最大""
                };
                db.Comments.Add(comment);
                success = db.SaveChanges() > 0;
                if (success)
                {
                    comment.LocalPath = GetLocalPath(comment.LocalPath, comment.Id);
                    db.Entry <Comments>(comment).State = EntityState.Modified;
                    //留言用户不是自己
                    if (toUser.Id != loginUser.Id)
                    {
                        //添加消息通知
                        var sysMessage = new SysMessage()
                        {
                            Content        = comment.Content,
                            CreateManageId = 1,
                            CreateTime     = DateTime.Now,
                            EntityId       = comment.Id,
                            EntityType     = (int)SysMessageEnum.SpaceComment,
                            SendType       = (int)SystemMessageEnum.ByUser,
                            ToUserIds      = toUser.Id + "" //通知空间所属者
                        };
                        db.SysMessage.Add(sysMessage);
                    }
                    db.Configuration.ValidateOnSaveEnabled = false;
                    success = db.SaveChanges() > 0;
                }
                return(comment.Id);
            });
            if (success)
            {
                CreateCache <Comments>();
                CreateCache <SysMessage>();
            }
            return(id);
        }
Esempio n. 4
0
        /// <summary>
        /// 发表视频评论
        /// </summary>
        /// <param name="loginUserId"></param>
        /// <param name="commentContent"></param>
        /// <param name="videoId"></param>
        /// <returns></returns>
        public int CreateVideoComment(int loginUserId, int videoId, string commentContent)
        {
            var success = false;

            #region 验证参数是否正确
            AssertUtil.AreBigger(loginUserId, 0, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_loginUserId"));
            AssertUtil.AreBigger(videoId, 0, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_videoId"));
            AssertUtil.NotNullOrWhiteSpace(commentContent, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_commentContent"));
            AssertUtil.AreSmallerOrEqual(commentContent.Length, 140, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_commentContentLength"));
            #endregion

            var commentId = Execute <int>((db) =>
            {
                #region 验证数据库是否存在
                var loginUser = db.User.FirstOrDefault(u => u.State == false && u.Id == loginUserId);
                AssertUtil.IsNotNull(loginUser, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_loginUser"));
                var video = db.Video.FirstOrDefault(v => v.State == false && v.Id == videoId);
                AssertUtil.IsNotNull(video, LanguageUtil.Translate("api_Repository_Comments_CreateVideoComment_video"));
                #endregion

                var comment = new Comments()
                {
                    FromUserId   = loginUser.Id,
                    ToUserId     = 0,
                    EntityType   = (int)CommentEnum.Video,
                    EntityId     = (int)video.Id,
                    Content      = commentContent,
                    CreateUserId = loginUser.Id,
                    CreateTime   = DateTime.Now,
                    LocalPath    = ""//发表视频评论的位置为最大""
                };
                db.Comments.Add(comment);
                //视频评论次数加一
                video.CommentCount                     = video.CommentCount + 1;
                db.Entry <Video>(video).State          = EntityState.Modified;
                db.Configuration.ValidateOnSaveEnabled = false;
                success = db.SaveChanges() > 0;
                if (success)
                {
                    comment.LocalPath = GetLocalPath(comment.LocalPath, comment.Id);
                    db.Entry <Comments>(comment).State = EntityState.Modified;
                    //发表评论的人不是上传者
                    if (video.CreateManageId != loginUser.Id)
                    {
                        //添加消息通知
                        var sysMessage = new SysMessage()
                        {
                            Content        = comment.Content,
                            CreateManageId = 1,
                            CreateTime     = DateTime.Now,
                            EntityId       = comment.Id,
                            EntityType     = (int)SysMessageEnum.VideoComment,
                            SendType       = (int)SystemMessageEnum.ByUser,
                            ToUserIds      = video.CreateManageId + ""//通知上传者
                        };
                        db.SysMessage.Add(sysMessage);
                    }
                    db.Configuration.ValidateOnSaveEnabled = false;
                    success = db.SaveChanges() > 0;
                }
                return(comment.Id);
            });
            if (success)
            {
                CreateCache <Video>();
                CreateCache <Comments>();
                CreateCache <SysMessage>();
            }
            return(commentId);
        }