public static bool Delete(this RelationUsersModule model)
 {
     return(ServiceHelper.GetRelationUsersModuleService.DeleteEntity(model.ID));
 }
 public static bool Update(this RelationUsersModule model)
 {
     return(ServiceHelper.GetRelationUsersModuleService.UpdateEntity(model));
 }
Beispiel #3
0
        private bool AddRelationUsersModule(string IDs, string ModuleIDs, int createUserID = 0)
        {
            if (string.IsNullOrWhiteSpace(IDs) || string.IsNullOrWhiteSpace(ModuleIDs))
            {
                return(false);
            }
            if (createUserID == 0)
            {
                createUserID = CurrentInfo.CurrentUser.ID;
            }


            List <int> userIDArr = IDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();
            List <int> moduleArr = ModuleIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();

            //把所有菜单的父菜单取出来,但是只能保证三级菜单,多级有可能有bug
            IModuleService moduleService = ServiceFactory.Create <IModuleService>();
            List <Module>  allListModule = new List <Module>();

            allListModule.AddRange(moduleService.GetEntities(t => moduleArr.Contains(t.ID)).ToList());
            //foreach (var item in allListModule)
            //{
            //    Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == item.ParentID);
            //    if (parentModule != null)
            //    {
            //        if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
            //        {
            //            allListModule.Add(parentModule);
            //        }
            //    }
            //}

            for (int i = 0; i < allListModule.Count(); i++)
            {
                int    parentID     = allListModule[i].ParentID;
                Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == parentID);
                if (parentModule != null)
                {
                    if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
                    {
                        allListModule.Add(parentModule);
                    }
                }
            }
            //从新生成菜单ID
            moduleArr = allListModule.Select(t => t.ID).ToList();

            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();

            List <RelationUsersModule> listRelationUsersModule = new List <RelationUsersModule>();
            int addCount = 0;

            using (TransactionScope scope = TransactionScopeHelper.GetTran())
            {
                foreach (var userID in userIDArr)
                {
                    //删除当前人员的所有的权限,然后在添加新的权限
                    var userModule = relationUsersModuleService.GetEntities(t => t.UsersID == userID);
                    relationUsersModuleService.DeleteEntities(userModule.ToList());
                    foreach (var moduleID in moduleArr)
                    {
                        RelationUsersModule model = new RelationUsersModule();
                        model.UsersID      = userID;
                        model.ModuleID     = moduleID;
                        model.CreateUserID = createUserID;
                        model.CreateTime   = DateTime.Now;
                        listRelationUsersModule.Add(model);
                    }
                }
                addCount = relationUsersModuleService.AddEntities(listRelationUsersModule).Count();
                scope.Complete();
            }
            if (addCount > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        //==================RelationUserRole拓展结束==================

        //==================RelationUsersModule拓展开始==================
        public static RelationUsersModule Add(this RelationUsersModule model)
        {
            return(ServiceHelper.GetRelationUsersModuleService.AddEntity(model));
        }
        public JsonResult AddRelationUsersModule(string IDs, string ModuleIDs)
        {
            if (string.IsNullOrWhiteSpace(IDs) || string.IsNullOrWhiteSpace(ModuleIDs))
            {
                return(Json(new Result(false, "参数错误"), JsonRequestBehavior.AllowGet));
            }

            List <int> userIDArr = IDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();
            List <int> moduleArr = ModuleIDs.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(t => Convert.ToInt32(t)).ToList();

            //把所有菜单的父菜单取出来,但是只能保证三级菜单,多级有可能有bug
            IModuleService moduleService = ServiceFactory.Create <IModuleService>();
            List <Module>  allListModule = new List <Module>();

            allListModule.AddRange(moduleService.GetEntities(t => moduleArr.Contains(t.ID)).ToList());

            //复制一份副本,用于循环使用
            Module[] tempAllListModule = new Module[allListModule.Count];
            allListModule.CopyTo(tempAllListModule);

            foreach (var item in tempAllListModule)
            {
                Module parentModule = moduleService.GetFirstOrDefault(t => t.ID == item.ParentID);
                if (parentModule != null)
                {
                    if (allListModule.Where(t => t.ID == parentModule.ID).Count() == 0)
                    {
                        allListModule.Add(parentModule);
                    }
                }
            }
            //从新生成菜单ID
            moduleArr = allListModule.Select(t => t.ID).ToList();

            IRelationUsersModuleService relationUsersModuleService = ServiceFactory.Create <IRelationUsersModuleService>();

            List <RelationUsersModule> listRelationUsersModule = new List <RelationUsersModule>();
            int addCount = 0;

            using (TransactionScope scope = TransactionScopeHelper.GetTran())
            {
                foreach (var userID in userIDArr)
                {
                    //删除当前人员的所有的权限,然后在添加新的权限
                    var userModule = relationUsersModuleService.GetEntities(t => t.UsersID == userID);
                    relationUsersModuleService.DeleteEntities(userModule.ToList());
                    foreach (var moduleID in moduleArr)
                    {
                        RelationUsersModule model = new RelationUsersModule();
                        model.UsersID      = userID;
                        model.ModuleID     = moduleID;
                        model.CreateUserID = CurrentInfo.CurrentUser.ID;
                        model.CreateTime   = DateTime.Now;
                        listRelationUsersModule.Add(model);
                    }
                }
                addCount = relationUsersModuleService.AddEntities(listRelationUsersModule).Count();
                scope.Complete();
            }

            return(Json(new Result(addCount > 0, "成功分配权限"), JsonRequestBehavior.AllowGet));
        }