public override bool AddModerators(ModeratorCollection moderators) { using (SqlQuery query = new SqlQuery()) { StringBuilder builder = new StringBuilder(); int i = 0; foreach (Moderator m in moderators) { builder.AppendFormat("DELETE FROM bx_Moderators WHERE UserID=@UserID{0} AND ForumID=@ForumID{0};", i); builder.AppendFormat(@"INSERT INTO bx_Moderators( UserID, ForumID, BeginDate, EndDate, ModeratorType, SortOrder, AppointorID) VALUES(@UserID{0}, @ForumID{0}, @BeginDate{0}, @EndDate{0},@ModeratorType{0}, @SortOrder{0}, @AppointorID{0})", i); query.CreateParameter <int>(string.Format("@UserID{0}", i), m.UserID, SqlDbType.Int); query.CreateParameter <int>(string.Format("@ForumID{0}", i), m.ForumID, SqlDbType.Int); query.CreateParameter <DateTime>(string.Format("@BeginDate{0}", i), m.BeginDate, SqlDbType.DateTime); query.CreateParameter <DateTime>(string.Format("@EndDate{0}", i), m.EndDate, SqlDbType.DateTime); query.CreateParameter <byte>(string.Format("@ModeratorType{0}", i), (byte)m.ModeratorType, SqlDbType.TinyInt); query.CreateParameter <int>(string.Format("@SortOrder{0}", i), m.SortOrder, SqlDbType.Int); query.CreateParameter <int>(string.Format("@AppointorID{0}", i), m.AppointorID, SqlDbType.Int); i++; } query.CommandText = builder.ToString(); query.ExecuteNonQuery(); return(true); } }
protected ModeratorCollection GetModerators(int forumID) { ModeratorCollection moderators = ForumBO.Instance.GetForum(forumID, false).Moderators; FillSimpleUsers <Moderator>(moderators); return(moderators); }
protected string GetModeratorLinks(ModeratorCollection moderators, string linkStyle, string separator) { if (string.IsNullOrEmpty(linkStyle)) linkStyle = "<a href=\"{0}\" target=\"_blank\">{1}</a>{2}"; if (separator == null) separator = ", "; StringBuilder simpleUserLinksString = new StringBuilder(); //FillSimpleUsers<Moderator>(moderators); foreach (Moderator moderator in moderators) { if (moderator.User == null) continue; string str = string.Empty; if (moderator.ModeratorType == ModeratorType.JackarooModerators) str = "(实习)"; simpleUserLinksString.Append(string.Format(linkStyle, BbsRouter.GetUrl("space/" + moderator.UserID), moderator.User.Name, str) + separator); } if (simpleUserLinksString.Length > 0) simpleUserLinksString.Remove(simpleUserLinksString.Length - separator.Length, separator.Length); return simpleUserLinksString.ToString(); }
internal void ClearModeratorCache() { s_AllModerators = null; ForumCollection forums = this.GetAllForums(); foreach (Forum forum in forums) { forum.ClearModeratorCache(); } }
/// <summary> /// 获得所有版块的所有版主,包含尚未生效的和已经过期的 /// </summary> /// <returns></returns> public ModeratorCollection GetAllModerators() { ModeratorCollection result = s_AllModerators; if (result == null) { result = ForumDaoV5.Instance.GetAllModerators(); s_AllModerators = result; } return(result); }
/// <summary> /// 清理所有缓存 /// </summary> public void ClearAllCache() { lock (allForumsLocker) { s_AllForums = null; s_AllForumsIndexByCodename = null; s_AllForumsForGuestList = null; s_CategoriesForGuestList = null; s_Categories = null; s_AllThreadCatalogs = null; s_AllModerators = null; //s_AllBannedUsers = null; s_ForumIdsForGuestVisit = null; s_ForumIdsForGuestVisit_Cached = false; } BannedUserBO.Instance.ClearBannedUserCache(); }
protected string GetModeratorLinks(ModeratorCollection moderators, string linkStyle, string separator) { if (string.IsNullOrEmpty(linkStyle)) { linkStyle = "<a href=\"{0}\" target=\"_blank\">{1}</a>{2}"; } if (separator == null) { separator = ", "; } StringBuilder simpleUserLinksString = new StringBuilder(); //FillSimpleUsers<Moderator>(moderators); foreach (Moderator moderator in moderators) { if (moderator.User == null) { continue; } string str = string.Empty; if (moderator.ModeratorType == ModeratorType.JackarooModerators) { str = "(实习)"; } simpleUserLinksString.Append(string.Format(linkStyle, BbsRouter.GetUrl("space/" + moderator.UserID), moderator.User.Name, str) + separator); } if (simpleUserLinksString.Length > 0) { simpleUserLinksString.Remove(simpleUserLinksString.Length - separator.Length, separator.Length); } return(simpleUserLinksString.ToString()); }
/// <summary> /// 添加版主 /// </summary> /// <param name="operatorUserID"></param> /// <param name="userID"></param> /// <param name="forumIds"></param> /// <param name="modetatorsType"></param> public void AddModerators(AuthUser operatorUser, ModeratorCollection moderators) { //AuthUser user = UserBO.Instance.GetUser(operatorUserID); //if (user == null) // return; if (!AllSettings.Current.BackendPermissions.Can(operatorUser, BackendPermissions.Action.Manage_Moderator)) { ThrowError <NoPermissionManageModerator>(new NoPermissionManageModerator()); return; } foreach (Moderator m in moderators) { if (m.IsNew) { m.AppointorID = operatorUser.UserID; m.IsNew = false; } } if (moderators.Count == 0) { return; } if (ForumDaoV5.Instance.AddModerators(moderators)) { this.ClearModeratorCache(); //User operatorUser = UserBO.Instance.GetUser(operatorUserID); foreach (Moderator m in moderators) { Logs.LogManager.LogOperation(new Logs.ModeratorAppoint(operatorUser.UserID, operatorUser.Username, m.UserID, m.User.Username, m.ForumID, m.Name, IPUtil.GetCurrentIP())); } } }
private void AddModerators() { ModeratorCollection moderators = new ModeratorCollection(); //------------------ old ------------------------ string[] strForumUser=_Request.Get("forum-user",Method.Post,string.Empty).Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries ); foreach (string str in strForumUser) { Moderator m = new Moderator(); m.SortOrder = _Request.Get<int>("sortorder." + str, Method.Post, 0); m.UserID = int.Parse(str.Split('.')[1]); m.ForumID = int.Parse(str.Split('.')[0]); m.BeginDate = DateTimeUtil.ParseBeginDateTime(_Request.Get("begindate." + str, Method.Post)); m.EndDate = DateTimeUtil.ParseEndDateTime(_Request.Get("enddate." + str, Method.Post)); m.IsNew = _Request.Get<bool>("isnew." + str, Method.Post, false); m.ModeratorType = _Request.Get<ModeratorType>("ModeratorType." + str, Method.Post, ModeratorType.Moderators); if (Forum.ParentID != 0 && m.ModeratorType == ModeratorType.CategoryModerators) { ShowError("非顶级分类不可以添加 分类版主!"); } else if(Forum.ParentID==0) { m.ModeratorType = ModeratorType.CategoryModerators; } moderators.Add(m); } //----------------- new ---------------------- if (!string.IsNullOrEmpty(_Request.Get("newmoderatorsid",Method.Post)) && _Request.Get("newmoderatorsid", Method.Post).Contains("{0}"))//No javascript { Moderator m=GetNewModerators("{0}"); if (m != null) moderators.Add(m); } else { int[] newModeratorIds = _Request.GetList<int>("newmoderatorsid", Method.Post, new int[0]); foreach (int i in newModeratorIds) { Moderator m = GetNewModerators(i.ToString()); if (m != null) moderators.Add(m); } } MessageDisplay msgDisplay = CreateMessageDisplay(); if (moderators.Count == 0) Return(true); try { ForumBO.Instance.AddModerators(My, moderators); } catch( Exception ex ) { msgDisplay.AddError(ex.Message); } if (HasUnCatchedError) { CatchError<ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { } if (!msgDisplay.HasAnyError()) Return(true); }
/// <summary> /// 判断用户是不是某类版主 /// </summary> /// <param name="userid"></param> /// <param name="type"></param> /// <returns></returns> public bool IsModerator(int userid, ModeratorType type) { ModeratorCollection moderators = GetModerators(); return((moderators.GetUserModeratorType(userid) & type) == type); }
private void AddModerators() { ModeratorCollection moderators = new ModeratorCollection(); //------------------ old ------------------------ string[] strForumUser = _Request.Get("forum-user", Method.Post, string.Empty).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (string str in strForumUser) { Moderator m = new Moderator(); m.SortOrder = _Request.Get <int>("sortorder." + str, Method.Post, 0); m.UserID = int.Parse(str.Split('.')[1]); m.ForumID = int.Parse(str.Split('.')[0]); m.BeginDate = DateTimeUtil.ParseBeginDateTime(_Request.Get("begindate." + str, Method.Post)); m.EndDate = DateTimeUtil.ParseEndDateTime(_Request.Get("enddate." + str, Method.Post)); m.IsNew = _Request.Get <bool>("isnew." + str, Method.Post, false); m.ModeratorType = _Request.Get <ModeratorType>("ModeratorType." + str, Method.Post, ModeratorType.Moderators); if (Forum.ParentID != 0 && m.ModeratorType == ModeratorType.CategoryModerators) { ShowError("非顶级分类不可以添加 分类版主!"); } else if (Forum.ParentID == 0) { m.ModeratorType = ModeratorType.CategoryModerators; } moderators.Add(m); } //----------------- new ---------------------- if (!string.IsNullOrEmpty(_Request.Get("newmoderatorsid", Method.Post)) && _Request.Get("newmoderatorsid", Method.Post).Contains("{0}")) //No javascript { Moderator m = GetNewModerators("{0}"); if (m != null) { moderators.Add(m); } } else { int[] newModeratorIds = _Request.GetList <int>("newmoderatorsid", Method.Post, new int[0]); foreach (int i in newModeratorIds) { Moderator m = GetNewModerators(i.ToString()); if (m != null) { moderators.Add(m); } } } MessageDisplay msgDisplay = CreateMessageDisplay(); if (moderators.Count == 0) { Return(true); } try { ForumBO.Instance.AddModerators(My, moderators); } catch (Exception ex) { msgDisplay.AddError(ex.Message); } if (HasUnCatchedError) { CatchError <ErrorInfo>(delegate(ErrorInfo error) { msgDisplay.AddError(error); }); } else { } if (!msgDisplay.HasAnyError()) { Return(true); } }
public override bool AddModerators(ModeratorCollection moderators) { using (SqlQuery query = new SqlQuery()) { StringBuilder builder = new StringBuilder(); int i = 0; foreach (Moderator m in moderators) { builder.AppendFormat("DELETE FROM bx_Moderators WHERE UserID=@UserID{0} AND ForumID=@ForumID{0};", i); builder.AppendFormat(@"INSERT INTO bx_Moderators( UserID, ForumID, BeginDate, EndDate, ModeratorType, SortOrder, AppointorID) VALUES(@UserID{0}, @ForumID{0}, @BeginDate{0}, @EndDate{0},@ModeratorType{0}, @SortOrder{0}, @AppointorID{0})", i); query.CreateParameter<int>(string.Format("@UserID{0}", i), m.UserID, SqlDbType.Int); query.CreateParameter<int>(string.Format("@ForumID{0}", i), m.ForumID, SqlDbType.Int); query.CreateParameter<DateTime>(string.Format("@BeginDate{0}", i), m.BeginDate, SqlDbType.DateTime); query.CreateParameter<DateTime>(string.Format("@EndDate{0}", i), m.EndDate, SqlDbType.DateTime); query.CreateParameter<byte>(string.Format("@ModeratorType{0}", i), (byte)m.ModeratorType, SqlDbType.TinyInt); query.CreateParameter<int>(string.Format("@SortOrder{0}", i), m.SortOrder, SqlDbType.Int); query.CreateParameter<int>(string.Format("@AppointorID{0}", i), m.AppointorID, SqlDbType.Int); i++; } query.CommandText = builder.ToString(); query.ExecuteNonQuery(); return true; } }
public abstract bool AddModerators(ModeratorCollection moderators);