/// <summary> /// 发送邮件(多篇文章)-订阅列表中的角色+邮箱 /// </summary> /// <param name="Articles"></param> /// <returns></returns> public Int32 SendMail(Playngo_ClientZone_GameSheet DataItem) { Int32 RecordCount = 0; Int32 UserRecordCount = 0; var UserList = Common.Split <UserInfo>(UserController.GetUsersByProfileProperty(DataItem.PortalId, "Newsletter_GameSheets", "True", 0, Int32.MaxValue, ref UserRecordCount), 1, Int32.MaxValue); if (UserList != null && UserList.Count > 0) { foreach (var UserItem in UserList) { //验证邮件地址符合规则 if (Mail.IsValidEmailAddress(UserItem.Email, Null.NullInteger)) { //验证用户是否有权限接受邮件 if (ValidUserRole(DataItem.Per_AllUsers, DataItem.Per_Roles, UserItem)) { //验证用户区域 if (ValidUserJurisdictions(DataItem.Per_AllJurisdictions, DataItem.Per_Jurisdictions, UserItem)) { //创建邮件 EmailInfo email = CreateMailHtml(DataItem, UserItem); //推送邮件 MailScheduler.AssignMessage(email); RecordCount++; } } } } } return(RecordCount); }
/// <summary> /// 验证用户是否有权限接受邮件 /// </summary> /// <param name="Per_AllUsers"></param> /// <param name="Per_Roles"></param> /// <param name="UserItem"></param> /// <returns></returns> public Boolean ValidUserRole(Int32 Per_AllUsers, String Per_Roles, UserInfo UserItem) { Boolean Valid = false; if (Per_AllUsers == 0) { Valid = true; } else { if (!String.IsNullOrEmpty(Per_Roles)) { var Roles = Common.GetList(Per_Roles); if (Roles != null && Roles.Count > 0) { var UserRoles = Common.Split <String>(UserItem.Roles, 1, Int32.MaxValue); if (UserRoles != null && UserRoles.Count > 0) { foreach (var UserRole in UserRoles) { Valid = Roles.Exists(r => r.ToLower() == UserRole.ToLower()); if (Valid) { break; } } } } } } return(Valid); }
public void Execute(BasePage Context) { TemplateFormat xf = new TemplateFormat(Context); QueryParam qp = new QueryParam(); qp.ReturnFields = "ID,Title"; qp.PageIndex = WebHelper.GetIntParam(Context.Request, "PageIndex", 1); qp.PageSize = WebHelper.GetIntParam(Context.Request, "PageSize", xf.ViewSettingT <Int32>("General.Search.Size", 10)); var RoleGroupList = RoleController.GetRoleGroups(Context.PortalId); var RoleGroups = Common.Split <RoleGroupInfo>(RoleGroupList, 1, 999); String SearchText = WebHelper.GetStringParam(Context.Request, "search", ""); if (!String.IsNullOrEmpty(SearchText)) { RoleGroups = RoleGroups.FindAll(r => r.RoleGroupName.IndexOf(SearchText, StringComparison.CurrentCultureIgnoreCase) >= 0); } RoleGroups = Common.Split <RoleGroupInfo>(RoleGroups, qp.PageIndex, qp.PageSize); Dictionary <String, Object> jsonPictures = new Dictionary <string, Object>(); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); List <Dictionary <String, Object> > DictItems = new List <Dictionary <string, object> >(); foreach (var RoleGroupItem in RoleGroups) { int index = RoleGroups.IndexOf(RoleGroupItem); //index 为索引值 Dictionary <String, Object> jsonDict = new Dictionary <String, Object>(); jsonDict.Add("id", RoleGroupItem.RoleGroupID); jsonDict.Add("text", RoleGroupItem.RoleGroupName); jsonDict.Add("roles", Playngo_ClientZone_RoleGroup.FindRolesByGroup(Context.PortalId, RoleGroupItem.RoleGroupID)); DictItems.Add(jsonDict); } jsonPictures.Add("Items", DictItems); jsonPictures.Add("Pages", qp.Pages); jsonPictures.Add("RecordCount", RoleGroupList.Count); //转换数据为json ResponseString = jsSerializer.Serialize(jsonPictures); }
/// <summary> /// 绑定数据 /// </summary> private void BindDataToPage() { //绑定当前站点列表 DotNetNuke.Entities.Portals.PortalController portalController = new DotNetNuke.Entities.Portals.PortalController(); WebHelper.BindList <PortalInfo>(ddlPortals, Common.Split <PortalInfo>(portalController.GetPortals(), 1, int.MaxValue), "PortalName", "PortalID"); WebHelper.SelectedListByValue(ddlPortals, Settings["ClientZone_PortalID"] != null && !string.IsNullOrEmpty(Settings["ClientZone_PortalID"].ToString()) ? Convert.ToInt32(Settings["ClientZone_PortalID"]) : PortalId); BindModuleList(); WebHelper.SelectedListByValue(ddlTabModule, String.Format("{0}-{1}", Settings_TabID, Settings_ModuleID)); }
/// <summary> /// 设置属性值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <param name="PropertyName"></param> /// <param name="PropertyValue"></param> /// <returns></returns> public T SetPropertyValue <T>(T t, String PropertyName, object PropertyValue) { if (t != null) { Type typeT = typeof(T); List <PropertyInfo> Propertys = Common.Split <PropertyInfo>(typeT.GetProperties(), 0, 999); if (Propertys.Exists(r => r.Name == PropertyName)) { PropertyInfo Property = Propertys.Find(r => r.Name == PropertyName); if (Property != null && Property.Name == PropertyName) { typeT.GetProperty(PropertyName).SetValue(t, Convert.ChangeType(PropertyValue, Property.PropertyType), null); } } } return(t); }
/// <summary> /// 获取转换事件相关的用户列表 /// </summary> /// <param name="EventItem"></param> /// <returns></returns> public List <UserInfo> ConvertUserList(Playngo_ClientZone_Event EventItem) { var UserDataList = new List <UserInfo>(); var UserList = new List <UserInfo>(); if (EventItem.Per_AllUsers == 0) { UserDataList = Common.Split <UserInfo>(UserController.GetUsers(EventItem.PortalId), 1, Int32.MaxValue); } else if (!String.IsNullOrEmpty(EventItem.Per_Roles)) { var RoleNames = Common.GetList(EventItem.Per_Roles); if (RoleNames != null && RoleNames.Count > 0) { foreach (var RoleName in RoleNames) { if (!String.IsNullOrEmpty(RoleName)) { UserDataList = DotNetNuke.Security.Roles.RoleController.Instance.GetUsersByRole(EventItem.PortalId, RoleName).ToList(); } } } } if (UserDataList != null && UserDataList.Count > 0) { foreach (var tempUser in UserDataList) { if (!UserList.Exists(r => r.UserID == tempUser.UserID)) { if (IsPreJurisdictionView(tempUser, EventItem.Per_AllJurisdictions, EventItem.Per_Jurisdictions)) { UserList.Add(tempUser); } } } } return(UserList); }
/// <summary> /// 列表行绑定 /// </summary> protected void gvEventList_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { //还原出数据 UserInfo UserItem = e.Row.DataItem as UserInfo; if (UserItem != null && UserItem.UserID > 0) { if (UserItem.Roles != null && UserItem.Roles.Count() > 0) { var Roles = Common.Split <String>(UserItem.Roles, 1, 9999); Roles.Remove("Registered Users"); Roles.Remove("Subscribers"); e.Row.Cells[3].Text = Common.GetStringByList(Roles, ", "); } } } }
/// <summary> /// 同步所有的文件 /// </summary> public Int32 SynchronizeAllFiles() { Int32 SynchronizeFileCount = 0; String WebPath = String.Format("{0}ClientZone/SynchronizeFiles/", PortalSettings.HomeDirectory); String ServerPath = MapPath(WebPath); DirectoryInfo dir = new DirectoryInfo(ServerPath); if (!dir.Exists) { dir.Create(); } List <FileInfo> SynchronizeFiles = Common.Split <FileInfo>(dir.GetFiles(), 1, int.MaxValue); foreach (FileInfo SynchronizeFile in SynchronizeFiles) { SynchronizeFileCount += SynchronizeAllFiles(SynchronizeFile); } return(SynchronizeFileCount); }
/// <summary> /// 绑定文件列表 /// </summary> /// <param name="FolderPath"></param> public void BindFileList(DirectoryInfo FolderPath) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); List <FileInfo> SynchronizeFiles = Common.Split <FileInfo>(FolderPath.GetFiles(), 1, Int32.MaxValue);; SynchronizeFiles.RemoveAll(r => r.Name.IndexOf("Thumbs.db", StringComparison.CurrentCultureIgnoreCase) >= 0); if (SynchronizeFiles != null && SynchronizeFiles.Count > 0) { sb.Append("<ul>").AppendLine(); for (int i = 0; i < SynchronizeFiles.Count && i < 5; i++) { FileInfo SynchronizeFile = SynchronizeFiles[i]; if (!(SynchronizeFile.Name.IndexOf("Thumbs.db", StringComparison.CurrentCultureIgnoreCase) >= 0)) { String FileWebPath = String.Format("ClientZone/SynchronizeFiles/{0}", SynchronizeFile.Name); sb.AppendFormat("<li><img src=\"{1}\" style=\"border-width:0px; max-height:40px;max-width:80px;\"/> {0}</li>", SynchronizeFile.Name, GetPhotoExtension(SynchronizeFile.Extension.Replace(".", ""), FileWebPath)).AppendLine(); } } if (SynchronizeFiles.Count > 5) { sb.Append("<li>...</li>").AppendLine(); } sb.Append("</ul>").AppendLine(); labShowFileCount.Text = String.Format(ViewResourceText("labShowFileCount", "There are {0} files waiting to be imported in current folder."), SynchronizeFiles.Count); } else { labShowFileCount.Text = ViewResourceText("labShowFileCountEmpty", "There isn’t any file in current folder, you can can not click synchronize button."); cmdSynchronizeFiles.Enabled = false; } liShowFileList.Text = sb.ToString(); }
/// <summary> /// 设置角色和用户的关系 /// </summary> /// <returns>返回已经添加的角色</returns> private List <String> SetDataItem(ref UserInfo UserItem) { Int32 SelectUserID = WebHelper.GetIntParam(Request, "ddlSelectUser", 0); String SelectRoleGroups = String.Empty; String SelectRoleGroupTexts = String.Empty; WebHelper.GetSelected(cblRoleGroups, out SelectRoleGroupTexts, out SelectRoleGroups); List <String> AddRoleStatus = new List <string>(); if (SelectUserID > 0) { if (!String.IsNullOrEmpty(SelectRoleGroups)) { List <String> RoleGroupIDs = Common.Split <String>(Common.GetList(SelectRoleGroups), 1, 9999); if (RoleGroupIDs != null && RoleGroupIDs.Count > 0) { //取出用户信息 UserItem = UserController.GetUserById(PortalId, SelectUserID); if (UserItem != null && UserItem.UserID > 0) { //整理出来需要添加的分组 var Roles = new List <RoleInfo>(); foreach (var strRoleGroupID in RoleGroupIDs) { Int32 RoleGroupID = 0; if (Int32.TryParse(strRoleGroupID, out RoleGroupID) && RoleGroupID >= 0) { //取出角色分组信息 Roles.AddRange(Playngo_ClientZone_RoleGroup.FindRolesByGroup(PortalId, RoleGroupID)); } } //对比用户的角色,将需要添加的角色关系添加好 if (Roles != null && Roles.Count > 0) { foreach (var role in Roles) { //不存在的角色才需要添加 if (!UserItem.IsInRole(role.RoleName)) { RoleController.Instance.AddUserRole(PortalId, UserItem.UserID, role.RoleID, RoleStatus.Approved, false, xUserTime.LocalTime(), xUserTime.LocalTime().AddYears(100)); AddRoleStatus.Add(role.RoleName); } } } else { //没有需要添加的角色 XTrace.WriteLine("没有需要添加的角色"); } } else { //选择的用户无法查找到信息 XTrace.WriteLine("选择的用户无法查找到信息"); } } else { //角色分组信息解析有问题 XTrace.WriteLine("角色分组信息解析有问题"); } } else { //未选择角色分组 XTrace.WriteLine("未选择角色分组"); } } else { //未选择用户 XTrace.WriteLine("未选择用户"); } return(AddRoleStatus); }
public void Execute(BasePage Context) { TemplateFormat xf = new TemplateFormat(Context); QueryParam qp = new QueryParam(); qp.ReturnFields = "ID,Title"; qp.PageIndex = WebHelper.GetIntParam(Context.Request, "PageIndex", 1); qp.PageSize = WebHelper.GetIntParam(Context.Request, "PageSize", xf.ViewSettingT <Int32>("General.Search.Size", 10)); //排序的规则 qp.OrderType = WebHelper.GetIntParam(Context.Request, "OrderType", 1); qp.Orderfld = "ID"; //WebHelper.GetStringParam(Context.Request, "Orderfld", "ID"); //查询语句 qp = CreateQueryParam(qp, Context); //权限筛选 qp = CreateQueryByRoles(qp, Context); //区域筛选 qp = CreateQueryByJurisdictions(qp, Context); int RecordCount = 0; var UserList = new List <UserInfo>(); String SearchText = WebHelper.GetStringParam(Context.Request, "search", ""); if (!String.IsNullOrEmpty(SearchText)) { //UserList = UserController.Instance.GetUsersAdvancedSearch(Context.PortalId, 0, -1, -1, -1, false, 0, 10, "USERID", false, "Username,DisplayName", "%" + SearchText ).ToList<UserInfo>(); UserList = Common.Split <UserInfo>(UserController.GetUsersByUserName(Context.PortalId, "%" + SearchText + "%", 0, 10, ref RecordCount, false, false), 1, 100); // "USERID", false, "Username", ).ToList<UserInfo>(); } else { UserList = Common.Split <UserInfo>(UserController.GetUsers(Context.PortalId, 0, 10, ref RecordCount), 1, 100); //.GetUsersBasicSearch(Context.PortalId, 1, 10, "USERID", false, "", "").ToList<UserInfo>(); } Dictionary <String, Object> jsonPictures = new Dictionary <string, Object>(); JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); List <Dictionary <String, Object> > DictItems = new List <Dictionary <string, object> >(); foreach (var UserItem in UserList) { int index = UserList.IndexOf(UserItem); //index 为索引值 Dictionary <String, Object> jsonDict = new Dictionary <String, Object>(); jsonDict.Add("id", UserItem.UserID); jsonDict.Add("text", String.Format("{0} - {1}", UserItem.Username, UserItem.DisplayName)); jsonDict.Add("roles", Common.GetStringByList(UserItem.Roles)); DictItems.Add(jsonDict); } jsonPictures.Add("Items", DictItems); jsonPictures.Add("Pages", qp.Pages); jsonPictures.Add("RecordCount", RecordCount); //转换数据为json ResponseString = jsSerializer.Serialize(jsonPictures); }
/// <summary> /// 设置角色和用户的关系 /// </summary> /// <returns>返回已经添加的角色</returns> private List <String> SetDataItem(ref RoleGroupInfo RoleGroupItem) { Int32 SelectGroupID = WebHelper.GetIntParam(Request, "ddlSelectGroup", -1); String SelectRoles = String.Empty; String SelectRoleTexts = String.Empty; WebHelper.GetSelected(cblRoles, out SelectRoleTexts, out SelectRoles); List <String> RoleStatus = new List <string>(); if (SelectGroupID >= 0) { //请求出待改变的角色分组信息 RoleGroupItem = RoleController.GetRoleGroup(PortalId, SelectGroupID); if (!String.IsNullOrEmpty(SelectRoles)) { List <String> RoleIDs = Common.Split <String>(Common.GetList(SelectRoles), 1, 9999); var OldRoleGroups = Playngo_ClientZone_RoleGroup.FindListByGroup(SelectGroupID); //角色选择中不存在的需要删除 if (OldRoleGroups != null && OldRoleGroups.Count > 0) { foreach (var OldRoleGroup in OldRoleGroups) { //但原RoleId在选择列表中不存在时需要删除 if (!(RoleIDs != null && RoleIDs.Count > 0) || !RoleIDs.Exists(r => r == OldRoleGroup.RoleId.ToString())) { if (OldRoleGroup.Delete() > 0) { //构造删除角色列表状态 var role = RoleController.Instance.GetRoleById(PortalId, OldRoleGroup.RoleId); if (role != null && role.RoleID >= 0) { RoleStatus.Add(role.RoleName); } } } } } //角色选择中多出的需要添加 if (RoleIDs != null && RoleIDs.Count > 0) { foreach (var strRoleID in RoleIDs) { Int32 RoleId = 0; if (int.TryParse(strRoleID, out RoleId) && RoleId >= 0) { if (!(OldRoleGroups != null && OldRoleGroups.Count > 0) || !OldRoleGroups.Exists(r => r.RoleId == RoleId)) { if (new Playngo_ClientZone_RoleGroup() { GroupId = SelectGroupID, RoleId = RoleId }.Insert() > 0) { //构造增加角色列表状态 var role = RoleController.Instance.GetRoleById(PortalId, RoleId); if (role != null && role.RoleID >= 0) { RoleStatus.Add(role.RoleName); } } } } } } } else { //未选择角色分组 XTrace.WriteLine("未选择角色分组"); } } else { //未选择用户 XTrace.WriteLine("未选择用户"); } return(RoleStatus); }