Ejemplo n.º 1
0
        private int GetTagId(string tagname, int userid)
        {
            BlogTagsBLL blogtag = new BlogTagsBLL();

            try
            {
                var blogtagmode = blogtag.GetList(t => t.TagName == tagname);
                if (blogtagmode.Count() >= 1)
                {
                    return(blogtagmode.FirstOrDefault().Id);
                }
                else
                {
                    blogtag.Add(new ModelDB.BlogTags()
                    {
                        TagName = tagname,
                        IsDel   = false,
                        UsersId = userid
                    });
                    blogtag.save();
                    return(GetTagId(tagname, userid));
                }
            }
            catch (Exception ex)
            {
                return(-1);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 由给定的博文标签名查找该标签的ID,没有找到就新建一个
        /// </summary>
        /// <param name="tagname">标签名</param>
        /// <param name="userName">该标签所属用户的用户名</param>
        /// <returns></returns>
        private int GetTagId(string tagname, string userName)
        {
            BlogTagsBLL tagbll = new BlogTagsBLL();
            var         r      = tagbll.GetList(t => t.BlogTagName == tagname);

            if (r.Count() >= 1)
            {
                int id = -1;
                r.ToList().ForEach(w =>
                {
                    if (w.UserId == GetUserId(userName))
                    {
                        id = w.BlogTagId;
                    }
                });
                if (id != -1)
                {
                    return(id);
                }
                else
                {
                    tagbll.Add(new BlogTags()
                    {
                        BlogTagName = tagname,
                        UserId      = GetUserId(userName)
                    });
                    tagbll.save();
                    return(GetTagId(tagname, userName));
                }
            }
            else
            {
                tagbll.Add(new BlogTags()
                {
                    BlogTagName = tagname,
                    UserId      = GetUserId(userName)
                });
                tagbll.save();
                return(GetTagId(tagname, userName));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 添加新的tag标签
        /// </summary>
        /// <param name="taglist"></param>
        /// <returns></returns>
        private bool AddTag(List <string> taglist, int userid)
        {
            BlogTagsBLL blogtype = new BlogTagsBLL();

            foreach (string tag in taglist)
            {
                if (string.IsNullOrEmpty(tag) || blogtype.GetList(t => t.TagName == tag).Count() > 0)
                {
                    continue;
                }
                blogtype.Add(new ModelDB.BlogTags()
                {
                    TagName    = tag,
                    CreateTime = DateTime.Now,
                    IsDel      = false,
                    UsersId    = userid
                });
            }
            return(blogtype.save() > 0);
        }
Ejemplo n.º 4
0
        public string Release()
        {
            JSData jsdata = new JSData();

            var content    = Request.Form["content"];    //正文内容
            var title      = Request.Form["title"];      //标题
            var oldtag     = Request.Form["oldtag"];     //旧的标签(从checkbox中选取的)
            var newtag     = Request.Form["newtag"];     //新的标签(在tag_text中输入的)
            var type       = Request.Form["chk_type"];   //文章类型
            var isshowhome = Request.Form["isshowhome"]; //是否显示在主页
            var blogid     = Request.Form["blogid"];     //

            int numblogid = -1;

            int.TryParse(blogid, out numblogid);

            #region 数据验证
            if (null == BLL.Common.BLLSession.UserInfoSessioin)
            {
                jsdata.Message = "您还未登录~";
            }

            /*else if (BLL.Common.BLLSession.UserInfoSessioin.IsLock)
             *  jsdata.Message = "您的账户未激活,暂只能评论。~";*/
            else if (string.IsNullOrEmpty(content))
            {
                jsdata.Message = "内容不能为空~";
            }
            else if (content.Length >= 300000)
            {
                jsdata.Message = "发布内容过多~";
            }
            else if (string.IsNullOrEmpty(title))
            {
                jsdata.Message = "标题不能为空~";
            }
            else if (title.Length >= 100)
            {
                jsdata.Message = "标题过长~";
            }

            if (!string.IsNullOrEmpty(jsdata.Message))
            {
                jsdata.State = EnumState.失败;
                return(jsdata.ToJson());
            }
            #endregion

            BLL.BlogsBLL blogbll       = new BLL.BlogsBLL();
            var          blogtemp      = blogbll.GetList(t => t.BlogId == numblogid, isAsNoTracking: false).FirstOrDefault();
            var          userid        = numblogid > 0 ? blogtemp.UserId : BLLSession.UserInfoSessioin.UserId;//如果numblogid大于〇证明 是编辑修改
            var          sessionuserid = BLLSession.UserInfoSessioin.UserId;

            //获取得 文章 类型
            BlogTypes myBlogType;
            if (type == null)
            {
                myBlogType = new BlogTypesBLL().GetList(t => (t.TypeName == "未分类" && t.UserId == BLLSession.UserInfoSessioin.UserId), isAsNoTracking: false).FirstOrDefault();
            }
            else
            {
                var blogtype = int.Parse(type);
                myBlogType = new BLL.BlogTypesBLL().GetList(t => t.BlogTypeId == blogtype, isAsNoTracking: false).ToList().FirstOrDefault();
            }
            //获取得 文章 tag标签集合 对象
            //old
            var oldtaglist = oldtag.Split(',').ToList();
            var myOldTag   = new BLL.BlogTagsBLL().GetList(t => t.UserId == userid && oldtaglist.Contains(t.BlogTagName), isAsNoTracking: false).ToList();
            //new
            var newtaglistname = newtag.Split(',').ToList();

            //保存newtags到数据库
            BlogTagsBLL   tagBLL       = new BlogTagsBLL();
            List <string> distinctTemp = new List <string>();
            foreach (string tagName in newtaglistname)
            {
                if (String.IsNullOrEmpty(tagName.Trim()))
                {
                    continue;
                }
                if (distinctTemp.Contains(tagName.Trim()))
                {
                    continue;
                }
                tagBLL.Add(new BlogTags
                {
                    BlogTagName = tagName.Trim(),
                    UserId      = userid
                });
                try { tagBLL.save(); }
                catch (Exception ex)
                {
                    jsdata.Message = ex.ToString();
                    jsdata.State   = EnumState.失败;
                    return(jsdata.ToJson());
                }
                distinctTemp.Add(tagName.Trim());
                BLL.DataCache.GetAllTag(true);
            }
            //////////////////////

            var myTags = new BLL.BlogTagsBLL().GetList(t => t.UserId == userid && newtaglistname.Contains(t.BlogTagName), isAsNoTracking: false).ToList();
            myOldTag.ForEach(t => myTags.Add(t));



            //ModelDB.Blogs blogtemp = new ModelDB.Blogs();
            if (numblogid > 0)  //如果有 blogid 则修改
            {
                //blog = blogbll.GetList(t => t.Id == numblogid, isAsNoTracking: false).FirstOrDefault();
                if (sessionuserid == blogtemp.UserId || BLLSession.UserInfoSessioin.UserName == admin) //一定要验证更新的博客是否是登陆的用户
                {
                    blogtemp.Content     = content;
                    blogtemp.BlogRemarks = MyHtmlHelper.GetHtmlText(content);
                    blogtemp.Title       = title;
                    blogtemp.IsShowHome  = isshowhome == "true";
                    blogtemp.BlogTypes   = myBlogType;
                    blogtemp.BlogTags.Clear();//更新之前要清空      否则会存在主外键约束异常
                    blogtemp.BlogTags     = myTags;
                    blogtemp.IsDel        = false;
                    blogtemp.IsForwarding = false;
                    jsdata.Message        = "修改成功~";
                }
                else
                {
                    jsdata.Message = "您没有编辑此博文的权限~";
                    jsdata.JSurl   = "/";
                    jsdata.State   = EnumState.失败;
                    return(jsdata.ToJson());
                }
            }
            else  //否则是新发布
            {
                var blogfirst = blogbll.GetList(t => t.UserId == sessionuserid).OrderByDescending(t => t.BlogId).FirstOrDefault();
                //var blogtitle = blogtemp.BlogTitle;
                //if (blogfirst != null)
                //    blogtitle = blogtemp.BlogTitle;
                if (null != blogfirst && blogfirst.Title == title)
                {
                    jsdata.Message = "不能同时发表两篇一样标题的文章~";
                }
                else
                {
                    blogtemp = new Blogs()
                    {
                        UserId       = sessionuserid,
                        Content      = content,
                        BlogRemarks  = MyHtmlHelper.GetHtmlText(content),
                        Title        = title,
                        IsShowHome   = isshowhome == "true",
                        BlogTypes    = myBlogType,
                        BlogTags     = myTags,
                        IsDel        = false,
                        IsForwarding = false
                    };
                    blogbll.Add(blogtemp);
                    jsdata.Message = "发布成功~";
                }
            }

            //
            try
            {
                if (blogbll.save(false) > 0)
                {
                    blogtemp.BlogUrl = "/" + BLLSession.UserInfoSessioin.UserName + "/" + blogtemp.BlogId + ".html";
                    blogbll.save();
                    BLL.DataCache.GetAllType(true);
                    #region 添加 或 修改搜索索引

                    var newtagList = string.Empty;
                    blogtemp.BlogTags.Where(t => true).ToList().ForEach(t => newtagList += t.BlogTagName + " ");
                    var newblogurl = "/" + BLLSession.UserInfoSessioin.UserName + "/" + blogtemp.BlogId + ".html";
                    //    SearchResult search = new SearchResult()
                    //    {
                    //        flag = blogtemp.UsersId,
                    //        id = blogtemp.Id,
                    //        title = blogtemp.BlogTitle,
                    //        clickQuantity = 0,
                    //        blogTag = newtagList,
                    //        content = Blogs.Common.Helper.MyHtmlHelper.GetHtmlText(blogtemp.BlogContent),
                    //        url = newblogurl
                    //    };
                    //    SafetyWriteHelper<SearchResult>.logWrite(search, PanGuLuceneHelper.instance.CreateIndex);
                    //

                    #endregion
                    jsdata.State = EnumState.成功;
                    jsdata.JSurl = "/" + DataCache.GetUsersInfo().Where(t => t.UserId == blogtemp.UserId).First().UserName + "/" + blogtemp.BlogId + ".html";
                    return(jsdata.ToJson());
                }
            }
            catch (Exception ex)
            {
                jsdata.State   = EnumState.失败;
                jsdata.Message = ex.ToString();
                return(jsdata.ToJson());
            }

            jsdata.State = EnumState.失败;
            return(jsdata.ToJson());
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 添加新的tag标签
 /// </summary>
 /// <param name="taglist"></param>
 /// <returns></returns>
 private bool AddTag(List<string> taglist, int userid)
 {
     BlogTagsBLL blogtype = new BlogTagsBLL();
     foreach (string tag in taglist)
     {
         if (string.IsNullOrEmpty(tag) || blogtype.GetList(t => t.TagName == tag).Count() > 0)
             continue;
         blogtype.Add(new ModelDB.BlogTags()
         {
             TagName = tag,
             CreateTime = DateTime.Now,
             IsDel = false,
             UsersId = userid
         });
     }
     return blogtype.save() > 0;
 }
Ejemplo n.º 6
0
 private int GetTagId(string tagname, string userName)
 {
     BlogTagsBLL blogtag = new BlogTagsBLL();
     try
     {
         var blogtagmode = blogtag.GetList(t => t.TagName == tagname);
         if (blogtagmode.Count() >= 1)
             return blogtagmode.FirstOrDefault().Id;
         else
         {
             blogtag.Add(new ModelDB.BlogTags()
             {
                 TagName = tagname,
                 IsDel = false,
                 UsersId = GetUserId(userName)
             });
             blogtag.save();
             return GetTagId(tagname, userName);
         }
     }
     catch (Exception ex)
     {
         return -1;
     }
 }