/// <summary>
        /// 检查 这个 url地址 是否被添加过
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        private bool IsAreBlog(string url)
        {
            BLL.BlogsBLL blog  = new BLL.BlogsBLL();
            var          blogs = blog.GetList(t => t.BlogUrl == url);

            return(blogs.Count() >= 1);
        }
示例#2
0
        /// <summary>
        /// (弃用)
        /// </summary>
        /// <param name="index">页码</param>
        /// <param name="sizePage">页容量</param>
        /// <param name="ContentLength">内容截取长度</param>
        /// <returns></returns>
        public object Get(int idex, int sizePage, int ContentLength)
        {
            int total;
            BLL.BlogsBLL blog = new BLL.BlogsBLL();
            var bloglist = blog.GetList(idex, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false, tableName: t => t.BlogUsersSet)//
                .ToList()
                .Select(t => new ModelDB.Blogs()
                {
                    Id = t.Id,
                    BlogTitle = t.BlogTitle,
                    BlogContent = MyHtmlHelper.GetHtmlText(t.BlogContent, ContentLength),
                    BlogCreateTime = t.BlogCreateTime,
                    BlogUsersSet = new ModelDB.BlogUsersSet()
                    {
                        UserName = t.BlogUsersSet.UserName,
                        UserNickname = t.BlogUsersSet.UserNickname
                    },
                    BlogReadNum = t.BlogReadNum,
                    BlogCommentNum = t.BlogCommentNum
                }).ToList();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("blog", bloglist);
            dic.Add("total", total);
            //dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).ToList());
            //dic.Add("SessionUser", BLL.Common.BLLSession.UserInfoSessioin);
            return dic;
        }
        private void SaveReadNum(ModelDB.Blogs blogobj, string md5)
        {
            LogSave.TrackLogSave(GetUserDistinguish(Request, false), "ReadBlogLog");
            var isup = true;

            BLL.BlogsBLL blogbll  = new BLL.BlogsBLL();
            var          blogtemp = blogbll.GetList(t => t.Id == blogobj.Id, isAsNoTracking: false).FirstOrDefault();

            if (blogtemp.BlogReadNum == null)
            {
                blogtemp.BlogReadNum = 1;
            }
            else if (!IsRead(blogtemp, md5))
            {
                blogtemp.BlogReadNum++;
            }
            else
            {
                isup = false;
            }
            if (isup)
            {
                BLL.BlogCommentSetBLL.StaticSave();
            }
        }
示例#4
0
        /// <summary>
        /// (弃用)
        /// </summary>
        /// <param name="index">页码</param>
        /// <param name="sizePage">页容量</param>
        /// <param name="ContentLength">内容截取长度</param>
        /// <returns></returns>
        public object Get(int idex, int sizePage, int ContentLength)
        {
            int total;

            BLL.BlogsBLL blog     = new BLL.BlogsBLL();
            var          bloglist = blog.GetList(idex, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false, tableName: t => t.BlogUsersSet)//
                                    .ToList()
                                    .Select(t => new ModelDB.Blogs()
            {
                Id             = t.Id,
                BlogTitle      = t.BlogTitle,
                BlogContent    = MyHtmlHelper.GetHtmlText(t.BlogContent, ContentLength),
                BlogCreateTime = t.BlogCreateTime,
                BlogUsersSet   = new ModelDB.BlogUsersSet()
                {
                    UserName     = t.BlogUsersSet.UserName,
                    UserNickname = t.BlogUsersSet.UserNickname
                },
                BlogReadNum    = t.BlogReadNum,
                BlogCommentNum = t.BlogCommentNum
            }).ToList();

            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("blog", bloglist);
            dic.Add("total", total);
            //dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).ToList());
            //dic.Add("SessionUser", BLL.Common.BLLSession.UserInfoSessioin);
            return(dic);
        }
示例#5
0
        /// <summary>
        /// 分页获取 博客 内容
        /// </summary>
        /// <param name="idex">页码</param>
        /// <param name="sizePage">页容量</param>
        /// <param name="ContentLength">内容截取长度</param>
        /// <returns></returns>
        public object GetBlogContent(int index, int sizePage, int contentLength)
        {
            int total;
            BLL.BlogsBLL blog = new BLL.BlogsBLL();
            var bloglist = blog.GetList(index, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false, tableName: t => t.BlogUsersSet)//
                .ToList()
                .Select(t => new ModelDB.Blogs()
                {
                    Id = t.Id,//博客id
                    BlogTitle = t.BlogTitle,//博客标题
                    BlogContent = MyHtmlHelper.GetHtmlText(t.BlogContent, contentLength),//博客简介
                    BlogCreateTime = t.BlogCreateTime,//博客创建时间
                    BlogUsersSet = new ModelDB.BlogUsersSet()
                    {
                        UserName = t.BlogUsersSet.UserName,//用户名
                        UserNickname = t.BlogUsersSet.UserNickname//昵称
                    },
                    BlogReadNum = t.BlogReadNum,//博客阅读量
                    BlogCommentNum = t.BlogCommentNum//博客评论量
                }).ToList();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("BlogBrief", bloglist);//博客简介
            dic.Add("Total", total);//总页数
            //dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).Select(t => new
            //    {
            //        UserName = t.UserName,
            //        UserImage = t.UserImage,
            //        UserNickname = t.UserNickname
            //    }
            //    ).ToList());
            return dic;
        }
示例#6
0
        /// <summary>
        /// 分页获取 博客 内容
        /// </summary>
        /// <param name="idex">页码</param>
        /// <param name="sizePage">页容量</param>
        /// <param name="ContentLength">内容截取长度</param>
        /// <returns></returns>
        public object GetBlogContent(int index, int sizePage, int contentLength)
        {
            int total;

            BLL.BlogsBLL blog     = new BLL.BlogsBLL();
            var          bloglist = blog.GetList(index, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false, tableName: t => t.BlogUsersSet)//
                                    .ToList()
                                    .Select(t => new ModelDB.Blogs()
            {
                Id             = t.Id,                                                   //博客id
                BlogTitle      = t.BlogTitle,                                            //博客标题
                BlogContent    = MyHtmlHelper.GetHtmlText(t.BlogContent, contentLength), //博客简介
                BlogCreateTime = t.BlogCreateTime,                                       //博客创建时间
                BlogUsersSet   = new ModelDB.BlogUsersSet()
                {
                    UserName     = t.BlogUsersSet.UserName,    //用户名
                    UserNickname = t.BlogUsersSet.UserNickname //昵称
                },
                BlogReadNum    = t.BlogReadNum,                //博客阅读量
                BlogCommentNum = t.BlogCommentNum              //博客评论量
            }).ToList();

            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("BlogBrief", bloglist); //博客简介
            dic.Add("Total", total);        //总页数
            //dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).Select(t => new
            //    {
            //        UserName = t.UserName,
            //        UserImage = t.UserImage,
            //        UserNickname = t.UserNickname
            //    }
            //    ).ToList());
            return(dic);
        }
        /// <summary>
        /// 自定义 特殊页面 公共方法
        /// </summary>
        /// <param name="str">BlogTitle名字</param>
        /// <param name="pageName">存在MyPageId的KEY名</param>
        private void Forum(string str, string pageName)
        {
            #region 检测是否存在 admin 用户

            if (adminuserid <= 0)
            {
                BLL.BlogUsersSetBLL userbll = new BLL.BlogUsersSetBLL();
                var user = userbll.GetList(t => t.UserName == admin).FirstOrDefault();
                if (null == user)
                {
                    var usertemp = new Blogs.ModelDB.BlogUsersSet()
                    {
                        UserName     = admin,
                        UserPass     = "******".MD5().MD5(),
                        IsDel        = false,
                        IsLock       = false,
                        UserNickname = "",
                        UserInfo     = new ModelDB.UserInfo()
                    };
                    userbll.Add(usertemp);
                    userbll.save(false);
                    adminuserid = usertemp.Id;
                }
                else
                {
                    adminuserid = user.Id;
                }
            }

            #endregion

            #region 是否存在 自定义 特殊页面 (返回 blogid)
            if (MyPageId[pageName] == 0)
            {
                BLL.BlogsBLL blogbll = new BLL.BlogsBLL();
                var          blog    = blogbll.GetList(t => t.BlogTitle == str).FirstOrDefault();
                if (null == blog)
                {
                    var blogtemp = new Blogs.ModelDB.Blogs()
                    {
                        Id        = 0,
                        UsersId   = adminuserid,
                        IsDel     = false,
                        BlogTitle = str
                    };
                    blogbll.Add(blogtemp);
                    blogbll.save(false);
                    CacheData.GetAllUserInfo(true);//更新缓存
                    MyPageId[pageName] = blogtemp.Id;
                }
                else
                {
                    MyPageId[pageName] = blog.Id;
                }
            }
            #endregion
        }
示例#8
0
        public object GetBlogInfo(int blogId)
        {
            BLL.BlogsBLL blog               = new BLL.BlogsBLL();
            var          blogobj            = blog.GetList(t => t.Id == blogId).FirstOrDefault();
            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("Blog", blogobj.ToDTO());
            return(dic);
        }
        public Dictionary <string, object> GetUserBlog(string name, int id)
        {
            BLL.BlogsBLL blogBLL  = new BLL.BlogsBLL();
            var          last     = blogBLL.GetList(t => t.BlogId >= id && t.BlogUsers.UserName == name).OrderBy(t => t.BlogId).Take(2);
            var          next     = blogBLL.GetList(t => t.BlogId <= id && t.BlogUsers.UserName == name).OrderByDescending(t => t.BlogId).Take(2);
            var          blogUni  = (from c in last select c).Union(from a in next select a);
            var          blogNext = blogUni.Where(t => t.BlogId > id).FirstOrDefault();
            var          blogLast = blogUni.Where(t => t.BlogId < id).FirstOrDefault();
            var          blogCurr = blogUni.Where(t => t.BlogId == id).FirstOrDefault();

            var blogContent = Helper.MyHtmlHelper.GetHtmlText(blogCurr.Content);

            blogContent = blogContent.Length > 300 ? blogContent.Substring(0, 300) : blogContent;
            Dictionary <string, object> dictionary = new Dictionary <string, object>();

            dictionary.Add("blog", blogCurr);
            dictionary.Add("blogConText", blogContent);
            dictionary.Add("blogType", blogCurr.BlogTypes);                                            //当前博文所属类型
            dictionary.Add("blogTags", blogCurr.BlogTags == null ? null : blogCurr.BlogTags.ToList()); //当前博文所贴标签


            dictionary.Add("blogNext", blogNext);
            dictionary.Add("blogLast", blogLast);

            SetDic(dictionary, name);//设置其他字典数据


            #region 保存 标记 此文已经阅读过
            var        BlogHasRead = "BlogHasRead";
            HttpCookie Cookie      = Helper.CookieHelper.GetCookie(BlogHasRead);
            if (null == Cookie)
            {
                Cookie = new HttpCookie(BlogHasRead);
                Cookie.Values.Add(blogCurr.BlogId.ToString(), "true");
                //设置Cookie过期时间
                Cookie.Expires = DateTime.Now.AddHours(24);//一天
                Helper.CookieHelper.AddCookie(Cookie);
                blogCurr.BlogReadNum++;
                new BlogsBLL().Mod(blogCurr, "BlogReadNum");
            }
            else
            {
                if (Cookie.Values[blogCurr.BlogId.ToString()] != "true")
                {
                    Cookie.Values.Add(blogCurr.BlogId.ToString(), "true");
                    //设置Cookie过期时间
                    Helper.CookieHelper.SetCookie(BlogHasRead, blogCurr.BlogId.ToString(), "true");
                    blogCurr.BlogReadNum++;
                    new BlogsBLL().Mod(blogCurr, "BlogReadNum");
                }
            }
            #endregion


            return(dictionary);
        }
示例#10
0
        public ActionResult Index(int?id)
        {
            //
            int total;

            Response.Cache.SetOmitVaryStar(true);
            id = id ?? 1;
            int idex = int.Parse(id.ToString());

            BLL.BlogsBLL blog     = new BLL.BlogsBLL();
            var          bloglist = blog.GetList <DateTime?>(idex, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false)
                                    .Select(t => new
            {
                Id             = t.Id,
                BlogTitle      = t.BlogTitle,
                BlogContent    = t.BlogContent,
                UserName       = t.BlogUsersSet.UserName,
                UserNickname   = t.BlogUsersSet.UserNickname,
                BlogCreateTime = t.BlogCreateTime,
                BlogReadNum    = t.BlogReadNum,
                BlogCommentNum = t.BlogCommentNum
            })
                                    .ToList()
                                    .Select(t => new ModelDB.Blogs()
            {
                Id             = t.Id,
                BlogTitle      = t.BlogTitle,
                BlogContent    = MyHtmlHelper.GetHtmlText(t.BlogContent),
                BlogCreateTime = t.BlogCreateTime,
                BlogUsersSet   = new ModelDB.BlogUsersSet()
                {
                    UserName     = t.UserName,
                    UserNickname = t.UserNickname
                },
                BlogReadNum    = t.BlogReadNum,
                BlogCommentNum = t.BlogCommentNum
            }).ToList();

            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("blog", bloglist);
            dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).ToList());
            dic.Add("SessionUser", BLL.Common.BLLSession.UserInfoSessioin);
            dic.Add("total", total);
            return(View(dic));
        }
示例#11
0
        // GET api/<controller>
        public IEnumerable<string> Get()
        {
            Model1Container db = new Model1Container();
            db.Blogs.Where(t => t.BlogTitle == "留言板"
             ).ToList();

            BLL.BlogsBLL blogbll = new BLL.BlogsBLL();//|| t.BlogTitle.Contains(EntityFunctions.AsNonUnicode("取存过和函数"))
            var blogtemp = blogbll.GetList(t => t.BlogTitle == "留言板"
                || t.BlogTitle == "友情链接", isAsNoTracking: false).ToList();

            for (int i = 0; i < blogtemp.Count; i++)
            {
                blogtemp[i].BlogContent = "异常异fsdfs常异常";
            }
            blogbll.save();

            return new string[] { "value1", "value2", "admin".MD5().MD5(), "admin".MD5().MD5().MD5().MD5() };
        }
示例#12
0
        public ActionResult Index(int? id)
        {
            //
            int total;
            Response.Cache.SetOmitVaryStar(true);
            id = id ?? 1;
            int idex = int.Parse(id.ToString());
            BLL.BlogsBLL blog = new BLL.BlogsBLL();
            var bloglist = blog.GetList<DateTime?>(idex, sizePage, out total, t => t.IsShowHome == true, false, t => t.BlogCreateTime, false)
                .Select(t => new
                {
                    Id = t.Id,
                    BlogTitle = t.BlogTitle,
                    BlogContent = t.BlogContent,
                    UserName = t.BlogUsersSet.UserName,
                    UserNickname = t.BlogUsersSet.UserNickname,
                    BlogCreateTime = t.BlogCreateTime,
                    BlogReadNum = t.BlogReadNum,
                    BlogCommentNum = t.BlogCommentNum
                })
                .ToList()
                .Select(t => new ModelDB.Blogs()
                {
                    Id = t.Id,
                    BlogTitle = t.BlogTitle,
                    BlogContent = MyHtmlHelper.GetHtmlText(t.BlogContent),
                    BlogCreateTime = t.BlogCreateTime,
                    BlogUsersSet = new ModelDB.BlogUsersSet()
                    {
                        UserName = t.UserName,
                        UserNickname = t.UserNickname
                    },
                    BlogReadNum = t.BlogReadNum,
                    BlogCommentNum = t.BlogCommentNum
                }).ToList();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("blog", bloglist);
            dic.Add("users", CacheData.GetAllUserInfo().Where(t => t.IsLock == false).ToList());
            dic.Add("SessionUser", BLL.Common.BLLSession.UserInfoSessioin);
            dic.Add("total", total);
            return View(dic);
        }
示例#13
0
        // GET api/<controller>
        public IEnumerable <string> Get()
        {
            Model1Container db = new Model1Container();

            db.Blogs.Where(t => t.BlogTitle == "留言板"
                           ).ToList();

            BLL.BlogsBLL blogbll  = new BLL.BlogsBLL();//|| t.BlogTitle.Contains(EntityFunctions.AsNonUnicode("取存过和函数"))
            var          blogtemp = blogbll.GetList(t => t.BlogTitle == "留言板" ||
                                                    t.BlogTitle == "友情链接", isAsNoTracking: false).ToList();

            for (int i = 0; i < blogtemp.Count; i++)
            {
                blogtemp[i].BlogContent = "异常异fsdfs常异常";
            }
            blogbll.save();


            return(new string[] { "value1", "value2", "admin".MD5().MD5(), "admin".MD5().MD5().MD5().MD5() });
        }
示例#14
0
        public ActionResult UserBlogList(string name, int?id)
        {
            //加不加 Response.Cache.SetOmitVaryStar(true),服务端的缓存情况都是一样的。
            //只是不加 SetOmitVaryStar(true) 时,对于同一个客户端浏览器,每隔一次请求,服务器端就不管客户端浏览器的缓存,
            //重新发送页面内容,但是只要在缓存有效期内,内容还是从服务器端缓存中读取。
            //http://www.cnblogs.com/dudu/archive/2012/08/27/asp_net_mvc_outputcache.html
            Response.Cache.SetOmitVaryStar(true);
            int myid = id ?? 1;

            BLL.BlogsBLL blog     = new BLL.BlogsBLL();
            var          bloglist = blog.GetList <DateTime?>(myid, sizePage, out total, t => t.BlogUsersSet.UserName == name && t.IsShowMyHome == true, false, t => t.BlogCreateTime, false)
                                    .Select(t => new
            {
                Id             = t.Id,
                BlogTitle      = t.BlogTitle,
                BlogContent    = t.BlogContent,
                BlogCreateTime = t.BlogCreateTime,
                BlogReadNum    = t.BlogReadNum,
                BlogCommentNum = t.BlogCommentNum
            })
                                    .ToList()
                                    .Select(t => new ModelDB.Blogs()
            {
                Id             = t.Id,
                BlogTitle      = t.BlogTitle,
                BlogContent    = MyHtmlHelper.GetHtmlText(t.BlogContent),
                BlogCreateTime = t.BlogCreateTime,
                BlogReadNum    = t.BlogReadNum,
                BlogCommentNum = t.BlogCommentNum
            }).ToList();

            Dictionary <string, object> dic = new Dictionary <string, object>();

            dic.Add("blogList", bloglist);
            //dic.Add("blogUserName", name);
            dic.Add("total", total);
            SetDic(dic, name);
            return(View(dic));
        }
示例#15
0
        public string Release()
        {
            JSData jsdata = new JSData();

            var content = Request.Form["content"];//正文内容
            var title = Request.Form["title"];//标题
            var oldtag = Request.Form["oldtag"];//旧的标签
            var newtag = Request.Form["newtag"];//新的标签
            var types = Request.Form["chk_type"];//文章类型
            var isshowhome = Request.Form["isshowhome"];//是否显示在主页
            var isshowmyhome = Request.Form["isshowmyhome"];//是否显示在个人主页
            var blogid = Request.Form["blogid"];//

            int numblogid = -1;
            int.TryParse(blogid, out numblogid);

            #region 数据验证
            if (null == BLL.Common.BLLSession.UserInfoSessioin)
                jsdata.Messg = "您还未登录~";
            else if (BLL.Common.BLLSession.UserInfoSessioin.IsLock)
                jsdata.Messg = "您的账户已经被锁定,请联系管理员~";
            else if (string.IsNullOrEmpty(content))
                jsdata.Messg = "内容不能为空~";
            else if (content.Length >= 80000)
                jsdata.Messg = "发布内容过多~";
            else if (string.IsNullOrEmpty(title))
                jsdata.Messg = "标题不能为空~";
            else if (title.Length >= 100)
                jsdata.Messg = "标题过长~";

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

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

            //获取得 文章 类型集合 对象
            var typelist = new List<int>();
            foreach (string type in types.Split(',').ToList())
            {
                if (!string.IsNullOrEmpty(type))
                    typelist.Add(int.Parse(type));
            }
            // types.Split(',').ToList().ForEach(t => typelist.Add(int.Parse(t)));
            var myBlogTypes = new BLL.BlogTypesBLL().GetList(t => typelist.Contains(t.Id), isAsNoTracking: false).ToList();

            //获取得 文章 tag标签集合 对象
            //old
            var oldtaglist = oldtag.Split(',').ToList();
            var myOldTagTypes = new BLL.BlogTagsBLL().GetList(t => t.UsersId == userid && oldtaglist.Contains(t.TagName), isAsNoTracking: false).ToList();
            //new
            var newtaglist = newtag.Split(',').ToList();
            AddTag(newtaglist, userid);//保存到数据库
            var myNweTagTypes = new BLL.BlogTagsBLL().GetList(t => t.UsersId == userid && newtaglist.Contains(t.TagName), isAsNoTracking: false).ToList();
            myNweTagTypes.ForEach(t => myOldTagTypes.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.UsersId || BLLSession.UserInfoSessioin.UserName == admin) //一定要验证更新的博客是否是登陆的用户
                {
                    blogtemp.BlogContent = content;
                    blogtemp.BlogTitle = title;
                    //blog.BlogUpTime = DateTime.Now;
                    //blog.BlogCreateTime = DateTime.Now;
                    blogtemp.IsShowMyHome = isshowmyhome == "true";
                    blogtemp.IsShowHome = isshowhome == "true";
                    blogtemp.BlogTypes.Clear();//更新之前要清空      不如会存在主外键约束异常
                    blogtemp.BlogTypes = myBlogTypes;
                    blogtemp.BlogTags.Clear();
                    blogtemp.BlogTags = myOldTagTypes;
                    blogtemp.IsDel = false;
                    blogtemp.IsForwarding = false;
                    jsdata.Messg = "修改成功~";
                }
                else
                {
                    jsdata.Messg = "您没有编辑此博文的权限~";
                    jsdata.JSurl = "/";
                    jsdata.State = EnumState.失败;
                    return jsdata.ToJson();
                }
            }
            else  //否则 新增
            {
                var blogfirst = blogbll.GetList(t => t.UsersId == sessionuserid).OrderByDescending(t => t.Id).FirstOrDefault();
                //var blogtitle = blogtemp.BlogTitle;
                //if (blogfirst != null)
                //    blogtitle = blogtemp.BlogTitle;
                if (null != blogfirst && blogfirst.BlogTitle == title)
                {
                    jsdata.Messg = "不能同时发表两篇一样标题的文章~";
                }
                else
                {
                    blogtemp = new ModelDB.Blogs()
                     {
                         UsersId = sessionuserid,
                         BlogContent = content,
                         BlogTitle = title,
                         BlogUpTime = DateTime.Now,
                         BlogCreateTime = DateTime.Now,
                         IsShowMyHome = isshowmyhome == "true",
                         IsShowHome = isshowhome == "true",
                         BlogTypes = myBlogTypes,
                         BlogTags = myOldTagTypes,
                         IsDel = false,
                         IsForwarding = false
                     };
                    blogbll.Add(blogtemp);
                    jsdata.Messg = "发布成功~";
                }
            }

            //
            if (blogbll.save(false) > 0)
            {
                #region 添加 或 修改搜索索引
                try
                {
                    var newtagList = string.Empty;
                    blogtemp.BlogTags.Where(t => true).ToList().ForEach(t => newtagList += t.TagName + " ");
                    var newblogurl = "/" + BLLSession.UserInfoSessioin.UserName + "/" + blogtemp.Id + ".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);
                }
                catch (Exception)
                { }
                #endregion

                jsdata.State = EnumState.成功;
                jsdata.JSurl = "/" + CacheData.GetAllUserInfo().Where(t => t.Id == blogtemp.UsersId).First().UserName + "/" + blogtemp.Id + ".html";
                return jsdata.ToJson();
            }

            jsdata.Messg = string.IsNullOrEmpty(jsdata.Messg) ? "操作失败~" : jsdata.Messg;
            jsdata.State = EnumState.失败;
            return jsdata.ToJson();
        }
示例#16
0
        public string WriteContent()
        {
            if (null == BLLSession.UserInfoSessioin)
            {
                return new JSData()
                {
                    Messg = "您还未登录~",
                    State = EnumState.异常或Session超时
                }.ToJson();
            }
            if (BLLSession.UserInfoSessioin.IsLock)
            {
                return new JSData()
                {
                    Messg = "您的账户已经被锁定,请联系管理员~",
                    State = EnumState.失败
                }.ToJson();
            }
            //|| MySession.UserInfoSessioin.IsLock)
            //    return "no";

            var BlogId = int.Parse(Request.Form["BlogId"]);
            var UserId = BLLSession.UserInfoSessioin.Id; //int.Parse(Request.Form["UserId"]);
            var CommentID = int.Parse(Request.Form["CommentID"]);
            var Content = Request.Form["Content"];
            var ReplyUserID = int.Parse(Request.Form["ReplyUser"]);

            if (Content.Length >= 1000)
            {
                return new JSData()
                {
                    State = EnumState.失败
                }.ToJson();
            }

            var ReplyUserName = string.Empty;
            var User = BLL.Common.CacheData.GetAllUserInfo().Where(t => t.Id == ReplyUserID).FirstOrDefault();
            if (null != User)
            {
                ReplyUserName = string.IsNullOrEmpty(User.UserNickname) ? User.UserName : User.UserNickname;
            }

            BLL.BlogCommentSetBLL comment = new BLL.BlogCommentSetBLL();
            comment.Add(new BlogCommentSet()
            {
                BlogUsersId = UserId,
                BlogsId = BlogId,
                Content = Content,
                CommentID = CommentID,
                ReplyUserID = ReplyUserID,
                ReplyUserName = ReplyUserName,
                IsInitial = CommentID == -1
            });

            BLL.BlogsBLL blogbll = new BLL.BlogsBLL();
            var blogmode = blogbll.GetList(t => t.Id == BlogId).FirstOrDefault();
            if (null == blogmode.BlogCommentNum)
            {
                blogmode.BlogCommentNum = comment.GetList(t => t.BlogsId == BlogId).Count() + 1;
            }
            else
            {
                blogmode.BlogCommentNum++;
            }
            blogbll.Up(blogmode, "BlogCommentNum");

            comment.save();

            return new JSData()
            {
                //这里发表成功    就不提示了。
                State = EnumState.成功
            }.ToJson();
        }
示例#17
0
        public string Release()
        {
            JSData jsdata = new JSData();

            var content      = Request.Form["content"];      //正文内容
            var title        = Request.Form["title"];        //标题
            var oldtag       = Request.Form["oldtag"];       //旧的标签
            var newtag       = Request.Form["newtag"];       //新的标签
            var types        = Request.Form["chk_type"];     //文章类型
            var isshowhome   = Request.Form["isshowhome"];   //是否显示在主页
            var isshowmyhome = Request.Form["isshowmyhome"]; //是否显示在个人主页
            var blogid       = Request.Form["blogid"];       //

            int numblogid = -1;

            int.TryParse(blogid, out numblogid);

            #region 数据验证
            if (null == BLL.Common.BLLSession.UserInfoSessioin)
            {
                jsdata.Messg = "您还未登录~";
            }
            else if (BLL.Common.BLLSession.UserInfoSessioin.IsLock)
            {
                jsdata.Messg = "您的账户已经被锁定,请联系管理员~";
            }
            else if (string.IsNullOrEmpty(content))
            {
                jsdata.Messg = "内容不能为空~";
            }
            else if (content.Length >= 80000)
            {
                jsdata.Messg = "发布内容过多~";
            }
            else if (string.IsNullOrEmpty(title))
            {
                jsdata.Messg = "标题不能为空~";
            }
            else if (title.Length >= 100)
            {
                jsdata.Messg = "标题过长~";
            }

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

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

            //获取得 文章 类型集合 对象
            var typelist = new List <int>();
            foreach (string type in types.Split(',').ToList())
            {
                if (!string.IsNullOrEmpty(type))
                {
                    typelist.Add(int.Parse(type));
                }
            }
            // types.Split(',').ToList().ForEach(t => typelist.Add(int.Parse(t)));
            var myBlogTypes = new BLL.BlogTypesBLL().GetList(t => typelist.Contains(t.Id), isAsNoTracking: false).ToList();

            //获取得 文章 tag标签集合 对象
            //old
            var oldtaglist    = oldtag.Split(',').ToList();
            var myOldTagTypes = new BLL.BlogTagsBLL().GetList(t => t.UsersId == userid && oldtaglist.Contains(t.TagName), isAsNoTracking: false).ToList();
            //new
            var newtaglist = newtag.Split(',').ToList();
            AddTag(newtaglist, userid);//保存到数据库
            var myNweTagTypes = new BLL.BlogTagsBLL().GetList(t => t.UsersId == userid && newtaglist.Contains(t.TagName), isAsNoTracking: false).ToList();
            myNweTagTypes.ForEach(t => myOldTagTypes.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.UsersId || BLLSession.UserInfoSessioin.UserName == admin) //一定要验证更新的博客是否是登陆的用户
                {
                    blogtemp.BlogContent = content;
                    blogtemp.BlogTitle   = title;
                    //blog.BlogUpTime = DateTime.Now;
                    //blog.BlogCreateTime = DateTime.Now;
                    blogtemp.IsShowMyHome = isshowmyhome == "true";
                    blogtemp.IsShowHome   = isshowhome == "true";
                    blogtemp.BlogTypes.Clear();//更新之前要清空      不如会存在主外键约束异常
                    blogtemp.BlogTypes = myBlogTypes;
                    blogtemp.BlogTags.Clear();
                    blogtemp.BlogTags     = myOldTagTypes;
                    blogtemp.IsDel        = false;
                    blogtemp.IsForwarding = false;
                    jsdata.Messg          = "修改成功~";
                }
                else
                {
                    jsdata.Messg = "您没有编辑此博文的权限~";
                    jsdata.JSurl = "/";
                    jsdata.State = EnumState.失败;
                    return(jsdata.ToJson());
                }
            }
            else  //否则 新增
            {
                var blogfirst = blogbll.GetList(t => t.UsersId == sessionuserid).OrderByDescending(t => t.Id).FirstOrDefault();
                //var blogtitle = blogtemp.BlogTitle;
                //if (blogfirst != null)
                //    blogtitle = blogtemp.BlogTitle;
                if (null != blogfirst && blogfirst.BlogTitle == title)
                {
                    jsdata.Messg = "不能同时发表两篇一样标题的文章~";
                }
                else
                {
                    blogtemp = new ModelDB.Blogs()
                    {
                        UsersId        = sessionuserid,
                        BlogContent    = content,
                        BlogTitle      = title,
                        BlogUpTime     = DateTime.Now,
                        BlogCreateTime = DateTime.Now,
                        IsShowMyHome   = isshowmyhome == "true",
                        IsShowHome     = isshowhome == "true",
                        BlogTypes      = myBlogTypes,
                        BlogTags       = myOldTagTypes,
                        IsDel          = false,
                        IsForwarding   = false
                    };
                    blogbll.Add(blogtemp);
                    jsdata.Messg = "发布成功~";
                }
            }

            //
            if (blogbll.save(false) > 0)
            {
                #region 添加 或 修改搜索索引
                try
                {
                    var newtagList = string.Empty;
                    blogtemp.BlogTags.Where(t => true).ToList().ForEach(t => newtagList += t.TagName + " ");
                    var          newblogurl = "/" + BLLSession.UserInfoSessioin.UserName + "/" + blogtemp.Id + ".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);
                }
                catch (Exception)
                { }
                #endregion

                jsdata.State = EnumState.成功;
                jsdata.JSurl = "/" + CacheData.GetAllUserInfo().Where(t => t.Id == blogtemp.UsersId).First().UserName + "/" + blogtemp.Id + ".html";
                return(jsdata.ToJson());
            }

            jsdata.Messg = string.IsNullOrEmpty(jsdata.Messg) ? "操作失败~" : jsdata.Messg;
            jsdata.State = EnumState.失败;
            return(jsdata.ToJson());
        }
示例#18
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());
        }
示例#19
0
        public string WriteContent()
        {
            if (null == BLLSession.UserInfoSessioin)
            {
                return(new JSData()
                {
                    Messg = "您还未登录~",
                    State = EnumState.异常或Session超时
                }.ToJson());
            }
            if (BLLSession.UserInfoSessioin.IsLock)
            {
                return(new JSData()
                {
                    Messg = "您的账户已经被锁定,请联系管理员~",
                    State = EnumState.失败
                }.ToJson());
            }
            //|| MySession.UserInfoSessioin.IsLock)
            //    return "no";

            var BlogId      = int.Parse(Request.Form["BlogId"]);
            var UserId      = BLLSession.UserInfoSessioin.Id; //int.Parse(Request.Form["UserId"]);
            var CommentID   = int.Parse(Request.Form["CommentID"]);
            var Content     = Request.Form["Content"];
            var ReplyUserID = int.Parse(Request.Form["ReplyUser"]);

            if (Content.Length >= 1000)
            {
                return(new JSData()
                {
                    State = EnumState.失败
                }.ToJson());
            }

            var ReplyUserName = string.Empty;
            var User          = BLL.Common.CacheData.GetAllUserInfo().Where(t => t.Id == ReplyUserID).FirstOrDefault();

            if (null != User)
            {
                ReplyUserName = string.IsNullOrEmpty(User.UserNickname) ? User.UserName : User.UserNickname;
            }

            BLL.BlogCommentSetBLL comment = new BLL.BlogCommentSetBLL();
            comment.Add(new BlogCommentSet()
            {
                BlogUsersId   = UserId,
                BlogsId       = BlogId,
                Content       = Content,
                CommentID     = CommentID,
                ReplyUserID   = ReplyUserID,
                ReplyUserName = ReplyUserName,
                IsInitial     = CommentID == -1
            });

            BLL.BlogsBLL blogbll  = new BLL.BlogsBLL();
            var          blogmode = blogbll.GetList(t => t.Id == BlogId).FirstOrDefault();

            if (null == blogmode.BlogCommentNum)
            {
                blogmode.BlogCommentNum = comment.GetList(t => t.BlogsId == BlogId).Count() + 1;
            }
            else
            {
                blogmode.BlogCommentNum++;
            }
            blogbll.Up(blogmode, "BlogCommentNum");

            comment.save();

            return(new JSData()
            {
                //这里发表成功    就不提示了。
                State = EnumState.成功
            }.ToJson());
        }
示例#20
0
 private void SaveReadNum(ModelDB.Blogs blogobj, string md5)
 {
     LogSave.TrackLogSave(GetUserDistinguish(Request, false), "ReadBlogLog");
     var isup = true;
     BLL.BlogsBLL blogbll = new BLL.BlogsBLL();
     var blogtemp = blogbll.GetList(t => t.Id == blogobj.Id, isAsNoTracking: false).FirstOrDefault();
     if (blogtemp.BlogReadNum == null)
         blogtemp.BlogReadNum = 1;
     else if (!IsRead(blogtemp, md5))
         blogtemp.BlogReadNum++;
     else
         isup = false;
     if (isup)
         BLL.BlogCommentSetBLL.StaticSave();
 }
示例#21
0
        /// <summary>
        /// 自定义 特殊页面 公共方法
        /// </summary>
        /// <param name="str">BlogTitle名字</param>
        /// <param name="pageName">存在MyPageId的KEY名</param>
        private void Forum(string str, string pageName)
        {
            #region 检测是否存在 admin 用户

            if (adminuserid <= 0)
            {
                BLL.BlogUsersSetBLL userbll = new BLL.BlogUsersSetBLL();
                var user = userbll.GetList(t => t.UserName == admin).FirstOrDefault();
                if (null == user)
                {
                    var usertemp = new Blogs.ModelDB.BlogUsersSet()
                    {
                        UserName = admin,
                        UserPass = "******".MD5().MD5(),
                        IsDel = false,
                        IsLock = false,
                        UserNickname = "",
                        UserInfo = new ModelDB.UserInfo()
                    };
                    userbll.Add(usertemp);
                    userbll.save(false);
                    adminuserid = usertemp.Id;
                }
                else
                    adminuserid = user.Id;
            }

            #endregion

            #region 是否存在 自定义 特殊页面 (返回 blogid)
            if (MyPageId[pageName] == 0)
            {
                BLL.BlogsBLL blogbll = new BLL.BlogsBLL();
                var blog = blogbll.GetList(t => t.BlogTitle == str).FirstOrDefault();
                if (null == blog)
                {
                    var blogtemp = new Blogs.ModelDB.Blogs()
                    {
                        Id = 0,
                        UsersId = adminuserid,
                        IsDel = false,
                        BlogTitle = str
                    };
                    blogbll.Add(blogtemp);
                    blogbll.save(false);
                    CacheData.GetAllUserInfo(true);//更新缓存
                    MyPageId[pageName] = blogtemp.Id;
                }
                else
                    MyPageId[pageName] = blog.Id;
            }
            #endregion
        }
示例#22
0
        public ActionResult UserBlogList(string name, int? id)
        {
            //加不加 Response.Cache.SetOmitVaryStar(true),服务端的缓存情况都是一样的。
            //只是不加 SetOmitVaryStar(true) 时,对于同一个客户端浏览器,每隔一次请求,服务器端就不管客户端浏览器的缓存,
            //重新发送页面内容,但是只要在缓存有效期内,内容还是从服务器端缓存中读取。
            //http://www.cnblogs.com/dudu/archive/2012/08/27/asp_net_mvc_outputcache.html
            Response.Cache.SetOmitVaryStar(true);
            int myid = id ?? 1;
            BLL.BlogsBLL blog = new BLL.BlogsBLL();
            var bloglist = blog.GetList<DateTime?>(myid, sizePage, out total, t => t.BlogUsersSet.UserName == name && t.IsShowMyHome == true, false, t => t.BlogCreateTime, false)
                .Select(t => new
                {
                    Id = t.Id,
                    BlogTitle = t.BlogTitle,
                    BlogContent = t.BlogContent,
                    BlogCreateTime = t.BlogCreateTime,
                    BlogReadNum = t.BlogReadNum,
                    BlogCommentNum = t.BlogCommentNum
                })
                .ToList()
                .Select(t => new ModelDB.Blogs()
                {
                    Id = t.Id,
                    BlogTitle = t.BlogTitle,
                    BlogContent = MyHtmlHelper.GetHtmlText(t.BlogContent),
                    BlogCreateTime = t.BlogCreateTime,
                    BlogReadNum = t.BlogReadNum,
                    BlogCommentNum = t.BlogCommentNum
                }).ToList();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("blogList", bloglist);
            //dic.Add("blogUserName", name);
            dic.Add("total", total);
            SetDic(dic, name);
            return View(dic);
        }
示例#23
0
        static string siteUrl = string.Empty; // "blog.haojima.net";

        #endregion Fields

        #region Methods

        /// <summary>
        /// 转发
        /// </summary>
        public void Forward()
        {
            Response.ContentType = "application/json";
            var ResultValue = string.Empty;
            var data = Request.QueryString["mydata"];
            string callback = Request.QueryString["callback"];
            JavaScriptSerializer jss = new JavaScriptSerializer();
            Dictionary<string, string> dic = jss.Deserialize<Dictionary<string, string>>(data);
            var name = dic["username"].Trim();
            var pass = dic["password"].Trim();
            var userinfo = CacheData.GetAllUserInfo().Where(t => t.UserName == name && t.UserPass == pass.MD5().MD5()).FirstOrDefault();
            object tyeList = null;
            if (userinfo != null)
            {
                var tag = dic["tag"].Trim();
                var type = dic["type"].Trim();
                var url = dic["url"].Trim();
                int typeint = -1;
                int.TryParse(type, out typeint);
                var tags = tag.Split(',');

                var jp = new JumonyParser();
                var html = jp.LoadDocument(url);
                var titlehtml = html.Find(".postTitle a").FirstOrDefault().InnerHtml();
                titlehtml = "【转】" + titlehtml;
                var bodyhtml = html.Find("#cnblogs_post_body").FirstOrDefault().InnerHtml();
                bodyhtml += "</br><div class='div_zf'>==================================<a  href='" + url + "' target='_blank'>原文链接</a>==================================</div>";

                var mtag = BLL.Common.GetDataHelper.GetAllTag().Where(t => tags.Contains(t.TagName)).ToList();

                var blogtagid = new List<int>();
                for (int i = 0; i < tags.Length; i++)
                {
                    blogtagid.Add(this.GetTagId(tags[i], userinfo.Id));
                }
                //&& t.UsersId == userinfo.Id         理论是不用 加用户id 筛选
                var myBlogTags = new BlogTagsBLL().GetList(t => blogtagid.Contains(t.Id), isAsNoTracking: false).ToList();
                var myBlogTypes = new BLL.BlogTypesBLL().GetList(t => t.Id == typeint, isAsNoTracking: false).ToList();

                object obj = null;
                string call = string.Empty;
                BLL.BlogsBLL blogbll = new BLL.BlogsBLL();
                var blogtitle = blogbll.GetList(t => t.UsersId == userinfo.Id).OrderByDescending(t => t.Id).FirstOrDefault().BlogTitle;
                if (blogtitle == titlehtml)
                {
                    obj = new { s = "no", m = "已存在相同标题博客文章~", u = GetSiteUrl() };
                    call = callback + "('" + obj.ToJson() + "')";
                    Response.Write(call);
                    return;
                }

                var blogmode = new Blogs.ModelDB.Blogs()
                    {
                        UsersId = userinfo.Id,
                        BlogTitle = titlehtml,
                        BlogTypes = myBlogTypes,
                        BlogTags = myBlogTags,
                        BlogContent = bodyhtml,
                        CreateTime = DateTime.Now,
                        BlogCreateTime = DateTime.Now,
                        BlogUpTime = DateTime.Now,
                        IsShowMyHome = true
                    };

                blogbll.Add(blogmode);

                if (blogbll.save() > 0)
                {
                    obj = new { s = "ok", m = "发布成功", u = GetSiteUrl() + "/" + userinfo.UserName + "/" + blogmode.Id + ".html" };
                    call = callback + "('" + obj.ToJson() + "')";
                    Response.Write(call);
                    return;
                }
                obj = new { s = "no", m = "发布失败", u = GetSiteUrl() + "/" + userinfo.UserName + "/" + blogmode.Id + ".html" };
                call = callback + "('" + obj.ToJson() + "')";
                Response.Write(call);
                return;
            }
            else
            {
                var obj = new { s = "no", m = "发布失败", u = GetSiteUrl() + "/" };
                var call = callback + "('" + obj.ToJson() + "')";
                Response.Write(call);
                return;
            }
            //var cc = callback + "('ok')";
            //Response.ContentType = "application/json";
            //Response.Write(cc);
        }
示例#24
0
        /// <summary>
        /// 根据博客id 获取博客
        /// </summary>
        /// <param name="name"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public Dictionary <string, object> GetUserBlog(string name, int id)
        {
            BLL.BlogsBLL blog = new BLL.BlogsBLL();

            #region 优化前
            //var blogobj = blog.GetList(t => t.Id == id && t.Users.UserName == name).FirstOrDefault();

            ////这里看 能不能只查询一次
            //var blogNext = blog.GetList(t => t.Id > id && t.Users.UserName == name).OrderBy(t => t.Id).FirstOrDefault();
            //var blogLast = blog.GetList(t => t.Id < id && t.Users.UserName == name).OrderBy(t => t.Id).FirstOrDefault();
            #endregion

            //优化后 只查一次数据库
            //比如id 为3 那么 last取3,4  next取2,3
            var last = blog.GetList(t => t.Id >= id && t.BlogUsersSet.UserName == name, isAsNoTracking: false, tableName: t => t.BlogUsersSet).OrderBy(t => t.Id).Take(2);
            var next = blog.GetList(t => t.Id <= id && t.BlogUsersSet.UserName == name, isAsNoTracking: false, tableName: t => t.BlogUsersSet).OrderByDescending(t => t.Id).Take(2);
            //去重复合并
            var blogUnion = (from c in last select c).Union(from a in next select a).ToList();

            var blogNext = blogUnion.Where(t => t.Id > id).FirstOrDefault();
            var blogLast = blogUnion.Where(t => t.Id < id).FirstOrDefault();
            var blogobj  = blogUnion.Where(t => t.Id == id).FirstOrDefault();

            Dictionary <string, object> dic = new Dictionary <string, object>();
            dic.Add("blog", blogobj);
            dic.Add("blogNext", blogNext);
            dic.Add("blogLast", blogLast);
            dic.Add("contentBlogType", blogobj.BlogTypes.ToList()); //当前博客所属的类型
            dic.Add("contentBlogTag", blogobj.BlogTags.ToList());   //当前博客所有的tag标签

            //Description 网页描述
            var BlogContent = MyHtmlHelper.GetHtmlText(blogobj.BlogContent);
            BlogContent = BlogContent.Length >= 300 ? BlogContent.Substring(0, 300) : BlogContent;
            dic.Add("blogConText", BlogContent);

            SetDic(dic, name);

            #region 保存 标记 此文已经阅读过
            var        BlogReadInfo = "BlogReadInfo";
            HttpCookie Cookie       = CookiesHelper.GetCookie(BlogReadInfo);
            if (null == Cookie)
            {
                Cookie = new HttpCookie(BlogReadInfo);
                Cookie.Values.Add(blogobj.Id.ToString(), "true");
                //设置Cookie过期时间
                Cookie.Expires = DateTime.Now.AddHours(24);//一天
                CookiesHelper.AddCookie(Cookie);
                //........................异步调用....................
                new SaveReadDelegate(SaveReadNum).BeginInvoke(blogobj, GetUserDistinguish(Request), null, null);
            }
            else
            {
                if (Cookie.Values[blogobj.Id.ToString()] == null || !Cookie.Values[blogobj.Id.ToString()].Equals("true"))
                {
                    CookiesHelper.SetCookie(BlogReadInfo, blogobj.Id.ToString(), "true");
                    //........................异步调用....................
                    new SaveReadDelegate(SaveReadNum).BeginInvoke(blogobj, GetUserDistinguish(Request), null, null);
                }
            }
            #endregion

            return(dic);
        }
示例#25
0
 /// <summary>
 /// 检查 这个 url地址 是否被添加过
 /// </summary>
 /// <param name="url"></param>
 /// <returns></returns>
 private bool IsAreBlog(string url)
 {
     BLL.BlogsBLL blog = new BLL.BlogsBLL();
     var blogs = blog.GetList(t => t.BlogUrl == url);
     return blogs.Count() >= 1;
 }
示例#26
0
 public object GetBlogInfo(int blogId)
 {
     BLL.BlogsBLL blog = new BLL.BlogsBLL();
     var blogobj= blog.GetList(t=>t.Id==blogId).FirstOrDefault();
     Dictionary<string, object> dic = new Dictionary<string, object>();
     dic.Add("Blog", blogobj.ToDTO());
     return dic;
 }
示例#27
0
        /// <summary>
        /// 转发
        /// </summary>
        public void Forward()
        {
            Response.ContentType = "application/json";
            var    ResultValue = string.Empty;
            var    data        = Request.QueryString["mydata"];
            string callback    = Request.QueryString["callback"];
            JavaScriptSerializer        jss = new JavaScriptSerializer();
            Dictionary <string, string> dic = jss.Deserialize <Dictionary <string, string> >(data);
            var    name     = dic["username"].Trim();
            var    pass     = dic["password"].Trim();
            var    userinfo = CacheData.GetAllUserInfo().Where(t => t.UserName == name && t.UserPass == pass.MD5().MD5()).FirstOrDefault();
            object tyeList  = null;

            if (userinfo != null)
            {
                var tag     = dic["tag"].Trim();
                var type    = dic["type"].Trim();
                var url     = dic["url"].Trim();
                int typeint = -1;
                int.TryParse(type, out typeint);
                var tags = tag.Split(',');

                var jp        = new JumonyParser();
                var html      = jp.LoadDocument(url);
                var titlehtml = html.Find(".postTitle a").FirstOrDefault().InnerHtml();
                titlehtml = "【转】" + titlehtml;
                var bodyhtml = html.Find("#cnblogs_post_body").FirstOrDefault().InnerHtml();
                bodyhtml += "</br><div class='div_zf'>==================================<a  href='" + url + "' target='_blank'>原文链接</a>==================================</div>";

                var mtag = BLL.Common.GetDataHelper.GetAllTag().Where(t => tags.Contains(t.TagName)).ToList();

                var blogtagid = new List <int>();
                for (int i = 0; i < tags.Length; i++)
                {
                    blogtagid.Add(this.GetTagId(tags[i], userinfo.Id));
                }
                //&& t.UsersId == userinfo.Id         理论是不用 加用户id 筛选
                var myBlogTags  = new BlogTagsBLL().GetList(t => blogtagid.Contains(t.Id), isAsNoTracking: false).ToList();
                var myBlogTypes = new BLL.BlogTypesBLL().GetList(t => t.Id == typeint, isAsNoTracking: false).ToList();

                object       obj       = null;
                string       call      = string.Empty;
                BLL.BlogsBLL blogbll   = new BLL.BlogsBLL();
                var          blogtitle = blogbll.GetList(t => t.UsersId == userinfo.Id).OrderByDescending(t => t.Id).FirstOrDefault().BlogTitle;
                if (blogtitle == titlehtml)
                {
                    obj  = new { s = "no", m = "已存在相同标题博客文章~", u = GetSiteUrl() };
                    call = callback + "('" + obj.ToJson() + "')";
                    Response.Write(call);
                    return;
                }

                var blogmode = new Blogs.ModelDB.Blogs()
                {
                    UsersId        = userinfo.Id,
                    BlogTitle      = titlehtml,
                    BlogTypes      = myBlogTypes,
                    BlogTags       = myBlogTags,
                    BlogContent    = bodyhtml,
                    CreateTime     = DateTime.Now,
                    BlogCreateTime = DateTime.Now,
                    BlogUpTime     = DateTime.Now,
                    IsShowMyHome   = true
                };

                blogbll.Add(blogmode);

                if (blogbll.save() > 0)
                {
                    obj  = new { s = "ok", m = "发布成功", u = GetSiteUrl() + "/" + userinfo.UserName + "/" + blogmode.Id + ".html" };
                    call = callback + "('" + obj.ToJson() + "')";
                    Response.Write(call);
                    return;
                }
                obj  = new { s = "no", m = "发布失败", u = GetSiteUrl() + "/" + userinfo.UserName + "/" + blogmode.Id + ".html" };
                call = callback + "('" + obj.ToJson() + "')";
                Response.Write(call);
                return;
            }
            else
            {
                var obj  = new { s = "no", m = "发布失败", u = GetSiteUrl() + "/" };
                var call = callback + "('" + obj.ToJson() + "')";
                Response.Write(call);
                return;
            }
            //var cc = callback + "('ok')";
            //Response.ContentType = "application/json";
            //Response.Write(cc);
        }
示例#28
0
        /// <summary>
        /// 根据博客id 获取博客
        /// </summary>
        /// <param name="name"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public Dictionary<string, object> GetUserBlog(string name, int id)
        {
            BLL.BlogsBLL blog = new BLL.BlogsBLL();

            #region 优化前
            //var blogobj = blog.GetList(t => t.Id == id && t.Users.UserName == name).FirstOrDefault();

            ////这里看 能不能只查询一次
            //var blogNext = blog.GetList(t => t.Id > id && t.Users.UserName == name).OrderBy(t => t.Id).FirstOrDefault();
            //var blogLast = blog.GetList(t => t.Id < id && t.Users.UserName == name).OrderBy(t => t.Id).FirstOrDefault();
            #endregion

            //优化后 只查一次数据库
            //比如id 为3 那么 last取3,4  next取2,3
            var last = blog.GetList(t => t.Id >= id && t.BlogUsersSet.UserName == name, isAsNoTracking: false, tableName: t => t.BlogUsersSet).OrderBy(t => t.Id).Take(2);
            var next = blog.GetList(t => t.Id <= id && t.BlogUsersSet.UserName == name, isAsNoTracking: false, tableName: t => t.BlogUsersSet).OrderByDescending(t => t.Id).Take(2);
            //去重复合并
            var blogUnion = (from c in last select c).Union(from a in next select a).ToList();

            var blogNext = blogUnion.Where(t => t.Id > id).FirstOrDefault();
            var blogLast = blogUnion.Where(t => t.Id < id).FirstOrDefault();
            var blogobj = blogUnion.Where(t => t.Id == id).FirstOrDefault();

            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("blog", blogobj);
            dic.Add("blogNext", blogNext);
            dic.Add("blogLast", blogLast);
            dic.Add("contentBlogType", blogobj.BlogTypes.ToList());//当前博客所属的类型
            dic.Add("contentBlogTag", blogobj.BlogTags.ToList());//当前博客所有的tag标签

            //Description 网页描述
            var BlogContent = MyHtmlHelper.GetHtmlText(blogobj.BlogContent);
            BlogContent = BlogContent.Length >= 300 ? BlogContent.Substring(0, 300) : BlogContent;
            dic.Add("blogConText", BlogContent);

            SetDic(dic, name);

            #region 保存 标记 此文已经阅读过
            var BlogReadInfo = "BlogReadInfo";
            HttpCookie Cookie = CookiesHelper.GetCookie(BlogReadInfo);
            if (null == Cookie)
            {
                Cookie = new HttpCookie(BlogReadInfo);
                Cookie.Values.Add(blogobj.Id.ToString(), "true");
                //设置Cookie过期时间
                Cookie.Expires = DateTime.Now.AddHours(24);//一天
                CookiesHelper.AddCookie(Cookie);
                //........................异步调用....................
                new SaveReadDelegate(SaveReadNum).BeginInvoke(blogobj, GetUserDistinguish(Request), null, null);
            }
            else
            {
                if (Cookie.Values[blogobj.Id.ToString()] == null || !Cookie.Values[blogobj.Id.ToString()].Equals("true"))
                {
                    CookiesHelper.SetCookie(BlogReadInfo, blogobj.Id.ToString(), "true");
                    //........................异步调用....................
                    new SaveReadDelegate(SaveReadNum).BeginInvoke(blogobj, GetUserDistinguish(Request), null, null);
                }
            }
            #endregion

            return dic;
        }