Example #1
0
        /// <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);
        }
Example #2
0
        /// <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);
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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);
 }
Example #6
0
        /// <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, ", ");
                    }
                }
            }
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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();
        }
Example #10
0
        /// <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);
        }
Example #12
0
        /// <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);
        }