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); }
/// <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; }
/// <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); }
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(); } }
/// <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); }
/// <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="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 }
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 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)); }
// 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() }; }
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); }
// 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() }); }
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)); }
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(); }
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(); }
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()); }
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()); }
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()); }
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(); }
/// <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 }
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); }
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); }
/// <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); }
/// <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; }
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; }
/// <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); }
/// <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; }