protected void Page_Load(object sender, EventArgs e) { var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var blogRedis = new BlogRedis(client); var memberRedis = new MemberRedis(client); var Id = Request["ID"]; var idNull = string.IsNullOrEmpty(Id); Item = new Member(); using (var con = DAL.con()) { if (!idNull) { var blog = blogRedis.GetById(Convert.ToInt64(Id)); Item = memberRedis.GetByUsername(blog.NguoiTao); //blog.Anhs = AnhDal.SelectByPId(con, blog.RowId.ToString(), 20); //blog.Profile = Item; ViewForProfile.Xes = Item.GetXe(client); ViewForProfile.Nhoms = Item.GetNhom(client); ViewForProfile.Pager = BinhLuanDal.PagerByPRowId(con, "", true, blog.RowId.ToString(), 20); ViewForProfile.Blog = blog; ViewForProfile.Item = Item; } } }
/// <summary> /// 读取当前魔蓝成员信息 /// </summary> /// <param name="row"></param> /// <returns></returns> private string GetMoredianMember(DataRow row) { try { #region 获取参数并简单校验 string Mobile = string.Empty; if (row.Table.Columns.Contains("Mobile")) { Mobile = row["Mobile"].ToString(); } if (string.IsNullOrEmpty(Mobile)) { return(new WxResponse(0, "用户不存在", null).toJson()); } if (Mobile.Length != 11) { return(new WxResponse(0, "用户不存在", null).toJson()); } DateTime DateNow = DateTime.Now; #endregion using (IDbConnection conn = new SqlConnection(PubConstant.WChat2020ConnectionString), erpConn = new SqlConnection(erpConnStr)) { #region 查询用户信息 Tb_User tb_User = conn.QueryFirstOrDefault <Tb_User>("SELECT * FROM Tb_User WITH(NOLOCK) WHERE Mobile = @Mobile", new { Mobile }); if (null == tb_User) { return(new WxResponse(0, "用户不存在", null).toJson()); } #endregion #region 获取AppToken TianChengEntranceSyncService.Config.EntranceConnectionStr = erpConnStr; TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString; string app_token = AppTokenRedis.GetAppToken(); if (string.IsNullOrEmpty(app_token)) { return(new WxResponse(0, "获取AppToken失败,请联系管理员", null).toJson()); } #endregion // 成员信息不存在,进行创建 #region 先查询/创建组织机构 MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg(); if (null == moredianOrg) { return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson()); } #endregion #region 查询人员信息 MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile); #endregion return(new WxResponse(200, "获取成功", moredianMember).toJson()); } } catch (Exception ex) { GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new WxResponse(0, "响应异常", null).toJson()); } }
private string GetVisitorInfo(DataRow row) { try { #region 获取参数并简单校验 string RecordID = string.Empty; if (row.Table.Columns.Contains("RecordID")) { RecordID = row["RecordID"].ToString(); } if (string.IsNullOrEmpty(RecordID)) { return(new WxResponse(0, "该记录不存在或已过期", null).toJson()); } #endregion using (IDbConnection erpConn = new SqlConnection(erpConnStr)) { dynamic info = erpConn.QueryFirstOrDefault("SELECT b.CommName, b.RoomSign, b.RoomName, a.MemberName, a.MemberMobile, a.MemberType, a.BeginDate, a.EndDate FROM Tb_HSPR_Entrance_Group_Visitor_Record a WITH(NOLOCK) JOIN view_HSPR_Room_Filter b WITH(NOLOCK) ON a.CommID = b.CommID AND a.RoomID = b.RoomID WHERE a.RecordID = @RecordID", new { RecordID }); if (null == info) { return(new WxResponse(0, "该记录不存在或已过期", null).toJson()); } string Mobile = Convert.ToString(info.MemberMobile); #region 先查询/创建组织机构 TianChengEntranceSyncService.Config.EntranceConnectionStr = erpConnStr; TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString; MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg(); if (null == moredianOrg) { return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson()); } #endregion #region 获取组织机构的AccessToken string access_token = AccessTokenRedis.GetAccessToken(Convert.ToString(moredianOrg.orgId), moredianOrg.orgAuthKey); if (string.IsNullOrEmpty(access_token)) { return(new WxResponse(0, "获取AccessToken失败,请联系管理员", null).toJson()); } #endregion MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile); if (null != moredianMember) { info.showFace = moredianMember.showFace; } else { info.showFace = ""; } return(new WxResponse(200, "查询成功", info).toJson()); } } catch (Exception ex) { GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new WxResponse(0, "响应异常", null).toJson()); } }
protected void Page_Load(object sender, EventArgs e) { var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var alias = Request["Alias"]; using (var con = DAL.con()) { var objRedis = new ObjRedis(client); var obj = objRedis.GetByAlias(alias); if(obj != null && !string.IsNullOrEmpty(obj.Url)) { Response.Redirect(obj.Url, true); } var memberRedis = new MemberRedis(client); var promotedUsers = memberRedis.GetXacNhanItems(0, 7); //UserHomeList.List = MemberDal.SelectPromoted(con, 8, 61); UserHomeList.List = promotedUsers; var blogRedis = new BlogRedis(client); //var userBlogs = BlogDal.SelectTopBlogProfile(con, 10, Security.Username, null); var userBlogs = blogRedis.GetNhatKyItems(0, 9); blogTop.List = userBlogs; //var carBlogs = BlogDal.SelectTopBlogXe(con, 10, Security.Username, null); var carBlogs = blogRedis.GetHanhTrinhItems(0, 10); nhatKyXeTop.List = carBlogs; var xeRedis = new XeRedis(client); //var topCars = XeDal.HomeTop; var topCars = xeRedis.GetAllItems(0, 9); //var newstpCars = XeDal.HomeNewest; var newstpCars = xeRedis.GetTopItems(0, 9); topCarsList.List = topCars; newestCarsList.List = newstpCars; promotedHome.Visible = false; promotedHome.HomeBig = XeDal.PromotedHomeBig.FirstOrDefault(); promotedHome.HomeMedium = XeDal.PromotedHomeMedium.Take(2).ToList(); promotedHome.HomeSMall = XeDal.PromotedHomeSmall.Take(4).ToList(); var loaiDanhMucRedis = new LoaiDanhMucRedis(client); var hangXe = loaiDanhMucRedis.GetByAlias("HANGXE"); //var hangXeList = DanhMucDal.SelectByLDMMa(con, "HANGXE"); if(hangXe!=null) { var hangXeList = hangXe.GetDanhMuc(client); var hangList = (from p in hangXeList where p.PID == Guid.Empty select p).OrderBy(m => m.ThuTu).ToList(); LeftMenu.List = hangList; } } }
protected void Page_Load(object sender, EventArgs e) { var u = Request["u"]; var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var memberRedis = new MemberRedis(client); var user = memberRedis.GetByUsername(u); Item = user; profile.Item = user; profile.Xes = user.GetXe(client); profile.Nhoms = user.GetNhom(client); profile.List = user.GetBlogs(client); }
protected void Page_Load(object sender, EventArgs e) { var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var blog = new BlogRedis(client); var binhLuanRedis = new BinhLuanRedis(client); var memberRedis = new MemberRedis(client); var js = new JavaScriptSerializer(); var startDate = DateTime.Now; var id = Request["id"]; if (string.IsNullOrEmpty(id)) id = "29"; var item = memberRedis.GetByRowId(new Guid("7788fd2f-850d-4eac-95c3-a8f4ac59335f")); rendertext(js.Serialize(item)); MemberDal.Update(item); //Response.Write("<h1>Blog</h1>"); //foreach (var i in blog.GetAll().GetRange(0,10)) //{ // var item = blog.GetById(Convert.ToInt64(i)); // Response.Write(string.Format("<h3>{0}:{1}</h3>", i, item.Ten)); // foreach (var b in item.BinhLuanIds) // { // var bluan = binhLuanRedis.GetById(Convert.ToInt32(b)); // Response.Write(string.Format("{0}:{1}<br/>", b, bluan.NoiDung)); // } //} //Response.Write("<h1>Member</h1>"); //var memberRedis = new MemberRedis(client); //foreach (var i in memberRedis.GetAll()) //{ // var item = memberRedis.GetById(Convert.ToInt32(i)); // Response.Write(string.Format("<h3>{0}:{1}</h3>",i, item.Ten)); // Response.Write("<hr/>"); // foreach (var b in item.BlogIds) // { // var iblog = blog.GetById(Convert.ToInt64(b)); // Response.Write(string.Format("{0}:{1}<br/>", b, iblog.Ten)); // } //} var endDate = DateTime.Now; Response.Write(string.Format("{0}",(endDate-startDate).TotalMilliseconds)); }
protected void Page_Load(object sender, EventArgs e) { var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var blogRedis = new BlogRedis(client); var memberRedis = new MemberRedis(client); var nhomRedis = new NhomRedis(client); var xeRedis = new XeRedis(client); var Id = Request["ID"]; var liked = Request["liked"]; var loai = Request["Loai"]; var username = Security.Username; switch (subAct) { case "like": #region add if(Security.IsAuthenticated()) { var likedVal = Convert.ToBoolean(liked); if(likedVal) { using(var con = DAL.con()) { var item = ThichDal.SelectByPidUsernameLoai(con, Id, username, loai); switch (item.Loai) { case 1: ObjMemberDal.DeleteByPRowIdUsername(Id, username); var xe = xeRedis.GetByRowId(item.P_ID); if (xe.Fans.Contains(username)) { xe.Fans.Remove(username); xe.TotalLike -= 1; } xeRedis.Save(xe); XeDal.Update(xe); CacheHelper.Remove(string.Format(XeDal.CacheItemKey, xe.Id)); break; case 2: var mem = memberRedis.GetByRowId(item.P_ID); if (mem.Fans.Contains(username)) { mem.Fans.Remove(username); mem.TotalLiked -= 1; } memberRedis.Save(mem); MemberDal.Update(mem); break; case 3: var blog = blogRedis.GetByRowId(item.P_ID); if (blog.NguoiThich.Contains(username)) { blog.NguoiThich.Remove(username); blog.TotalLike -= 1; } blogRedis.Save(blog); BlogDal.Update(blog); break; } ThichDal.DeleteById(item.ID); } } else { var item= ThichDal.Insert(new Thich() { ID = Guid.NewGuid() , NgayTao = DateTime.Now , P_ID = new Guid(Id) , Username = Security.Username , Loai = Convert.ToInt32(loai) }); switch (item.Loai) { case 1: var xe = xeRedis.GetByRowId(item.P_ID); if (xe.Fans.Contains(username)) { xe.Fans.Insert(0, username); xe.TotalLike += 1; } xeRedis.Save(xe); XeDal.Update(xe); CacheHelper.Remove(string.Format(XeDal.CacheItemKey, xe.Id)); ObjMemberDal.Insert(new ObjMember() { PRowId = xe.RowId , Username = username , Owner = false , NgayTao = DateTime.Now , RowId = Guid.NewGuid() }); break; case 2: var mem = memberRedis.GetByRowId(item.P_ID); if (mem.Fans.Contains(username)) { mem.Fans.Insert(0, username); mem.TotalLiked += 1; } memberRedis.Save(mem); MemberDal.Update(mem); break; case 3: var blog = blogRedis.GetByRowId(item.P_ID); if (blog.NguoiThich.Contains(username)) { blog.NguoiThich.Insert(0, username); blog.TotalLike += 1; } blogRedis.Save(blog); BlogDal.Update(blog); break; } } } break; #endregion default: break; } }
/// <summary> /// 发起远程开门 /// </summary> /// <param name="row"></param> /// <returns></returns> private string RemoteOpenDoor(DataRow row) { try { #region 获取参数并简单校验 string Mobile = string.Empty; if (row.Table.Columns.Contains("Mobile")) { Mobile = row["Mobile"].ToString(); } if (string.IsNullOrEmpty(Mobile)) { return(new WxResponse(0, "用户不存在", null).toJson()); } if (Mobile.Length != 11) { return(new WxResponse(0, "用户不存在", null).toJson()); } if (!row.Table.Columns.Contains("UserID") || !int.TryParse(row["UserID"].ToString(), out int UserID)) { return(new WxResponse(0, "用户不存在", null).toJson()); } string DeviceId = string.Empty; if (row.Table.Columns.Contains("DeviceId")) { DeviceId = row["DeviceId"].ToString(); } if (string.IsNullOrEmpty(DeviceId)) { return(new WxResponse(0, "请选择要开的门", null).toJson()); } DateTime DateNow = DateTime.Now; #endregion using (IDbConnection conn = new SqlConnection(PubConstant.WChat2020ConnectionString), erpConn = new SqlConnection(erpConnStr)) { #region 查询用户信息 Tb_User tb_User = conn.QueryFirstOrDefault <Tb_User>("SELECT * FROM Tb_User WITH(NOLOCK) WHERE Id = @Id AND Mobile = @Mobile", new { Id = UserID, Mobile }); if (null == tb_User) { return(new WxResponse(0, "用户不存在", null).toJson()); } #endregion #region 获取AppToken TianChengEntranceSyncService.Config.EntranceConnectionStr = erpConnStr; TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString; string app_token = AppTokenRedis.GetAppToken(); if (string.IsNullOrEmpty(app_token)) { return(new WxResponse(0, "获取AppToken失败,请联系管理员", null).toJson()); } #endregion // 成员信息不存在,进行创建 #region 先查询/创建组织机构 MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg(); if (null == moredianOrg) { return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson()); } #endregion #region 获取AccessToken string access_token = AccessTokenRedis.GetAccessToken(Convert.ToString(moredianOrg.orgId), moredianOrg.orgAuthKey); if (string.IsNullOrEmpty(access_token)) { return(new WxResponse(0, "获取AccessToken失败,请联系管理员", null).toJson()); } #endregion #region 查询人员信息 MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile); if (null == moredianMember) { return(new WxResponse(0, "请先使用“人脸采集”功能录入人脸信息后再使用远程开门", null).toJson()); } long memberId = moredianMember.memberId; string memberName = moredianMember.memberName; if (string.IsNullOrEmpty(memberName)) { memberName = moredianMember.mobile; } #endregion #region 查询设备是否存在 DeviceId = erpConn.QueryFirstOrDefault <string>("SELECT DeviceId FROM Tb_HSPR_Entrance_Device WITH(NOLOCK) WHERE DeviceId = @DeviceId", new { DeviceId }); if (string.IsNullOrEmpty(DeviceId)) { return(new WxResponse(0, "该设备不存在", null).toJson()); } #endregion #region 发起远程开门 { IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianRemoteOpenDoorRequest request = new MoredianRemoteOpenDoorRequest { deviceId = Convert.ToInt64(DeviceId), memberId = memberId, memberName = memberName }; MoredianRemoteOpenDoorResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, response.Message, response).toJson()); } return(new WxResponse(200, "操作成功", response).toJson()); } #endregion } } catch (Exception ex) { GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new WxResponse(0, "响应异常", null).toJson()); } }
/// <summary> /// 提交魔蓝成员信息(创建或者修改成员信息) /// </summary> /// <param name="row"></param> /// <returns></returns> private string SubmitMoredianMember(DataRow row) { try { #region 获取参数并简单校验 string Mobile = string.Empty; if (row.Table.Columns.Contains("Mobile")) { Mobile = row["Mobile"].ToString(); } if (string.IsNullOrEmpty(Mobile)) { return(new WxResponse(0, "用户不存在", null).toJson()); } if (Mobile.Length != 11) { return(new WxResponse(0, "用户不存在", null).toJson()); } string Face = string.Empty; if (row.Table.Columns.Contains("Face")) { Face = row["Face"].ToString(); } DateTime DateNow = DateTime.Now; #endregion using (IDbConnection conn = new SqlConnection(PubConstant.WChat2020ConnectionString), erpConn = new SqlConnection(erpConnStr)) { #region 获取AppToken TianChengEntranceSyncService.Config.EntranceConnectionStr = erpConnStr; TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString; string app_token = AppTokenRedis.GetAppToken(); if (string.IsNullOrEmpty(app_token)) { return(new WxResponse(0, "获取AppToken失败,请联系管理员", null).toJson()); } #endregion #region 先查询/创建组织机构 MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg(); if (null == moredianOrg) { return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson()); } #endregion #region 获取组织机构的AccessToken string access_token = AccessTokenRedis.GetAccessToken(Convert.ToString(moredianOrg.orgId), moredianOrg.orgAuthKey); if (string.IsNullOrEmpty(access_token)) { return(new WxResponse(0, "获取AccessToken失败,请联系管理员", null).toJson()); } #endregion MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile); #region 读取人脸图片 byte[] showFace = null; string IncidentAcceptImageUrl = Global_Fun.AppWebSettings("IncidentAcceptImageUrl"); if (Face.Contains(IncidentAcceptImageUrl)) { string IncidentAcceptImageSavePath = Global_Fun.AppWebSettings("IncidentAcceptImageSavePath"); #region 从本地服务器读取图片 // 替换文件路径为本地路径 string localFacePath = Face.Replace(IncidentAcceptImageUrl, IncidentAcceptImageSavePath); if (!File.Exists(localFacePath)) { return(new WxResponse(0, "人脸图片不存在,请重试", null).toJson()); } FileStream fileStream = File.OpenRead(localFacePath); int filelength = (int)fileStream.Length; showFace = new byte[filelength]; fileStream.Read(showFace, 0, filelength); #endregion } else { #region 从网络获取图片内容 { try { HttpHelper http = new HttpHelper(); HttpItem item = new HttpItem() { URL = Face, //URL 必需项 Method = "GET", //URL 可选项 默认为Get Timeout = 5000, //连接超时时间 可选项默认为100000 ReadWriteTimeout = 5000, //写入Post数据超时时间 可选项默认为30000 ResultType = ResultType.Byte, //返回数据类型,是Byte还是String ProtocolVersion = HttpVersion.Version11, //获取或设置用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11 }; HttpResult result = http.GetHtml(item); showFace = result.ResultByte; } catch (Exception ex) { return(new WxResponse(0, "读取人脸图片失败,请重试", ex.Message).toJson()); } } #endregion } #endregion #region 成员不存在,创建成员 if (null == moredianMember) { // 进行创建人员信息 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianCreateMemberRequest request = new MoredianCreateMemberRequest { moredianMember = new MoredianMember { mobile = Mobile, memberName = Mobile, }, showFace = showFace, verifyFace = showFace, }; MoredianCreateMemberResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "上传人脸信息失败,请重试", response.Message).toJson()); } moredianMember = new MoredianMember { memberId = response.memberId, mobile = Mobile, showFace = Face }; erpConn.Execute("INSERT INTO [dbo].[Tb_HSPR_Entrance_Member](Mobile, MemberId, Face) VALUES (@Mobile, @MemberId, @Face)", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "上传人脸信息成功", moredianMember).toJson()); } #endregion if (string.IsNullOrEmpty(moredianMember.showFace) && string.IsNullOrEmpty(Face)) { return(new WxResponse(200, "操作成功", null).toJson()); } #region 除人脸 if (string.IsNullOrEmpty(Face)) { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianDeleteMemberVerifyFaceRequest request = new MoredianDeleteMemberVerifyFaceRequest { memberId = moredianMember.memberId, }; MoredianDeleteMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "删除人脸信息失败", response.Message).toJson()); } erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "删除人脸信息成功", moredianMember).toJson()); } #endregion #region 更新成员人脸 { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianUpdateMemberVerifyFaceRequest request = new MoredianUpdateMemberVerifyFaceRequest { memberId = moredianMember.memberId, face = showFace }; MoredianUpdateMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token); if (!response.IsSucc()) { return(new WxResponse(0, "更新人脸信息失败,请重试", response.Message).toJson()); } } { // 更新显示图片 IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL); MoredianUpdateMemberShowFaceRequest request = new MoredianUpdateMemberShowFaceRequest { memberId = moredianMember.memberId, face = showFace }; MoredianUpdateMemberShowFaceResponse response = client.Execute(request, app_token, access_token); // 显示图片不处理失败情况 } erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId }); moredianMember = MemberRedis.UpdateMoredianMember(Mobile); return(new WxResponse(200, "更新人脸信息成功", moredianMember).toJson()); #endregion } } catch (Exception ex) { GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace); return(new WxResponse(0, "响应异常", null).toJson()); } }
public void InitBlog(SqlConnection con, IRedisClient redis) { const string itemKey = "urn:blog:{0}"; const string itemList = "urn:blog:list:{0}"; var blogRedis = new BlogRedis(redis); var memberRedis = new MemberRedis(redis); var nhomRedis = new NhomRedis(redis); var xeRedis = new XeRedis(redis); var member = new Member(); var xe = new Xe(); var nhom = new Nhom(); var nguoiTao = new Member(); //STEP:1 //var blog = BlogDal.SelectAll().FirstOrDefault(); //redis.Set(string.Format(itemKey,blog.Id), blog); //STEP:2 var list = BlogDal.SelectAll(); var all = redis.Lists[string.Format(itemList, "all")]; var approved = redis.Lists[string.Format(itemList, "approved")]; var unApproved = redis.Lists[string.Format(itemList, "unApproved")]; var topNhatKy = redis.Lists[string.Format(itemList, "blog")]; var topHanhTrinh = redis.Lists[string.Format(itemList, "hanhTrinh")]; var topNhomBlog = redis.Lists[string.Format(itemList, "nhomBlog")]; var topNhomForum = redis.Lists[string.Format(itemList, "nhomForum")]; foreach (var item in list) { var key = string.Format(itemKey, item.Id); var thich = ThichDal.SelectByPidLoai(item.RowId, 3); foreach (var thich1 in thich) { item.NguoiThich.Insert(0, thich1.Username); } var anhs = AnhDal.SelectByPId(DAL.con(), item.RowId.ToString(), 100); foreach (var anh in anhs) { item.AnhList.Insert(0, anh.Id); } var binhLuanList = BinhLuanDal.PagerByPRowId(con, "a", false, item.RowId.ToString(), 1000).List; foreach (var binhLuan in binhLuanList) { item.BinhLuanIds.Insert(0, binhLuan.Id); } switch (item.Loai) { case 1: member = memberRedis.GetByRowId(item.PID_ID); topHanhTrinh.Push(item.Id.ToString(CultureInfo.InvariantCulture)); if (member != null) { item.Url = string.Format("{0}/blogs/{1}/", member.Url, item.Id); item.UrlEdit = string.Format("{0}/blogs/edit/{1}/", member.Url, item.Id); } break; case 2: xe = xeRedis.GetByRowId(item.PID_ID); if (xe != null) { item.Url = string.Format("{0}blogs/{1}/", xe.XeUrl, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", xe.XeUrl, item.Id); } topNhatKy.Push(item.Id.ToString()); break; case 3: nhom = nhomRedis.GetByRowId(item.PID_ID); if (nhom != null) { item.Url = string.Format("{0}blogs/{1}/", nhom.Url, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", nhom.Url, item.Id); } topNhomBlog.Push(item.Id.ToString()); break; case 4: nhom = nhomRedis.GetByRowId(item.PID_ID); if (nhom != null) { item.Url = string.Format("{0}forum/{1}/", nhom.Url, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", nhom.Url, item.Id); } topNhomForum.Push(item.Id.ToString()); break; } redis.Set(key, item); redis.Set(string.Format(itemKey, item.RowId), item.Id); all.Push(item.Id.ToString()); if (item.Publish) { approved.Push(item.Id.ToString()); } else { unApproved.Push(item.Id.ToString()); } } }
protected void Page_Load(object sender, EventArgs e) { var pooledClientManager = new PooledRedisClientManager("localhost"); var client = pooledClientManager.GetClient(); var Ten = Request["Ten"]; var PID_ID = Request["PID_ID"]; var Loai = Request["Loai"]; var Id = Request["Id"]; var cUrl = Request["cUrl"]; var rowId = Request["RowId"]; var noiDung = Request["NoiDung"]; var approved = Request["approved"]; var logged = Security.IsAuthenticated(); var idNull = string.IsNullOrEmpty(Id) || Id == "0"; var blogRedis = new BlogRedis(client); var memberRedis = new MemberRedis(client); var nhomRedis = new NhomRedis(client); var xeRedis = new XeRedis(client); switch (subAct) { case "save": #region save blog if (logged && !string.IsNullOrEmpty(PID_ID) && !string.IsNullOrEmpty(Loai)) { var item = idNull ? new Blog() : BlogDal.SelectById(Convert.ToInt64(Id)); var member = new Member(); var xe = new Xe(); var nhom = new Nhom(); var nguoiTao = new Member(); item.NoiDung = noiDung; item.Ten = Ten; if (!string.IsNullOrEmpty(Loai)) { item.Loai = Convert.ToInt32(Loai); } if (!string.IsNullOrEmpty(PID_ID)) { item.PID_ID = new Guid(PID_ID); } if (!string.IsNullOrEmpty(rowId)) { item.RowId = new Guid(rowId); } item.MoTa = Lib.Rutgon(Lib.NoHtml(item.NoiDung), 400); var anhs = AnhDal.SelectByPId(DAL.con(), item.RowId.ToString(), 20).OrderByDescending(x => x.AnhBia).ToList(); if (anhs.Count > 0) { var sb = new StringBuilder(); foreach (var anhItem in anhs) { sb.AppendFormat(@"<a href=""{1}""><img alt=""{0}"" src=""/lib/up/car/{0}?w=75"" /></a>" , anhItem.FileAnh, item.Url); item.AnhList.Add(anhItem.Id); } item.AnhStr = sb.ToString(); } switch (item.Loai) { case 1: member = memberRedis.GetByRowId(item.PID_ID); break; case 2: xe = xeRedis.GetByRowId(item.PID_ID); break; case 3: case 4: case 5: //item.Nhom = NhomDal.SelectByRowId(DAL.con(), item.PID_ID, Security.Username); nhom = nhomRedis.GetByRowId(item.PID_ID); break; } if (idNull) { item.NguoiTao = Security.Username; item.NgayTao = DateTime.Now; var insert = BlogDal.Insert(item); item.Id = insert.Id; item.NguoiThich.Insert(0, item.NguoiTao); nguoiTao = memberRedis.GetByUsername(item.NguoiTao); switch (item.Loai) { case 1: if(member!= null) { member.TotalBlog += 1; member.BlogIds.Insert(0, item.Id); memberRedis.Save(member); MemberDal.Update(member); } break; case 2: if (xe != null) { xe.BlogIds.Insert(0, item.Id); xe.TotalBlog += 1; xeRedis.Save(xe); XeDal.Update(xe); } CacheHelper.Remove(string.Format(XeDal.CacheItemKey,item.Id)); systemMessageDal.Insert(new systemMessage() { NoiDung = string.Format("<strong>{0}</strong> viết bài mới", nguoiTao.Ten) , HeThong = false , Id = Guid.NewGuid() , PRowId = item.PID_ID , NgayTao = DateTime.Now , Active = true , Loai = 1 , Url = string.Format("{0}", item.Url) , Ten = string.Empty , ThanhVienMoi = false , Username = Security.Username , ThuTu = 0 }); break; case 3: case 4: case 5: nhom.TotalBlog += 1; if(item.Loai==3) { nhom.BlogIds.Insert(0, item.Id); } else { nhom.ForumBlogIds.Insert(0, item.Id); } nhomRedis.Save(nhom); if (nhom.NhomMo) { item.Publish = true; } systemMessageDal.Insert(new systemMessage() { NoiDung = string.Format("<strong>{0}</strong> viết bài mới", nguoiTao.Ten) , HeThong = false , Id = Guid.NewGuid() , PRowId = item.PID_ID , NgayTao = DateTime.Now , Active = true , Loai = 1 , Url = string.Format("{0}", item.Url) , Ten = string.Empty , ThanhVienMoi = false , Username = Security.Username , ThuTu = 0 }); NhomDal.Update(nhom); BlogDal.Update(item); break; } ObjMemberDal.Insert(new ObjMember() { PRowId = item.RowId , Username = Security.Username , Owner = true , NgayTao = DateTime.Now , RowId = Guid.NewGuid() }); var obj = ObjDal.Insert(new Obj() { Id = Guid.NewGuid() , Kieu = typeof(Blog).FullName , NgayTao = DateTime.Now , RowId = item.RowId , Url = string.Format("{0}", item.Url) , Username = Security.Username }); } else { nguoiTao = memberRedis.GetByUsername(item.NguoiTao); BlogDal.Update(item); } switch (item.Loai) { case 1: if (member != null) { item.Url = string.Format("{0}/blogs/{1}/", member.Url, item.Id); item.UrlEdit = string.Format("{0}/blogs/edit/{1}/", member.Url, item.Id); } break; case 2: if (xe != null) { item.Url = string.Format("{0}blogs/{1}/", xe.XeUrl, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", xe.XeUrl, item.Id); } break; case 3: if (nhom != null) { item.Url = string.Format("{0}blogs/{1}/", nhom.Url, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", nhom.Url, item.Id); } break; case 4: if (nhom != null) { item.Url = string.Format("{0}forum/{1}/", nhom.Url, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", nhom.Url, item.Id); } break; case 5: if (nhom != null) { item.Url = string.Format("{0}qa/{1}/", nhom.Url, item.Id); item.UrlEdit = string.Format("{0}blogs/edit/{1}/", nhom.Url, item.Id); } break; } blogRedis.Save(item); SearchManager.Add(item.Ten, string.Format("{0} {1}", item.Ten, item.NoiDung), string.Empty, item.RowId.ToString(), item.Url, typeof(Blog).Name); rendertext(item.Url); } rendertext("0"); break; #endregion case "remove": #region remove blog if(!string.IsNullOrEmpty(Id) && logged) { var item = BlogDal.SelectById(Convert.ToInt64(Id)); if(item.NguoiTao==Security.Username) { SearchManager.Remove(item.RowId); ObjDal.DeleteByRowId(item.RowId); ObjMemberDal.DeleteByPRowId(item.RowId.ToString()); ThichDal.DeleteByPId(item.RowId); CacheHelper.Remove(string.Format(BlogDal.CacheItemKey, item.Id)); BlogDal.DeleteById(item.Id); blogRedis.Remove(item.Id); rendertext("1"); } } break; #endregion case "nhomDuyetBlog": #region duyet blog of Nhom if (!string.IsNullOrEmpty(Id) && logged && !string.IsNullOrEmpty(approved)) { var Approved = approved == "1"; var item = blogRedis.GetById(Convert.ToInt64(Id)); if(Approved) { item.Publish = true; BlogDal.Update(item); blogRedis.Save(item); } else { blogRedis.Save(item); BlogDal.DeleteById(item.Id); } } break; #endregion } }