Пример #1
0
        public JsonResult ChangeSubmit(SysRole Model)
        {
            var jsonm = new ResultJson();

            jsonm.data = Model;
            var model = new SysRole();

            try
            {
                using (var db = SugarBase.GetIntance())
                {
                    if (!string.IsNullOrEmpty(Model.RoleID))
                    {
                        model = db.Queryable <SysRole>().Where(m => m.RoleID == Model.RoleID).First();
                    }
                    model.RoleName = Model.RoleName;
                    model.Remarks  = Model.Remarks;
                    if (string.IsNullOrEmpty(Model.RoleID))
                    {
                        db.Insertable(model).ExecuteCommand();
                        jsonm.status = 200;
                    }
                    else
                    {
                        db.Updateable(model).ExecuteCommand();
                        jsonm.status = 200;
                    }

                    db.Deleteable <SysRoleModule>().Where(m => m.RoleID == model.RoleID).ExecuteCommand();
                    if (Model.ModuleList != null)
                    {
                        List <SysRoleModule> rel_list = new List <SysRoleModule>();
                        foreach (var item in Model.ModuleList)
                        {
                            if (!string.IsNullOrEmpty(item.ID))
                            {
                                var SysRoleMenuModel = new SysRoleModule();
                                SysRoleMenuModel.ModuleID = item.ID;
                                SysRoleMenuModel.RoleID   = model.RoleID;
                                rel_list.Add(SysRoleMenuModel);
                            }
                        }
                        if (rel_list.Count > 0)
                        {
                            db.Insertable(rel_list).ExecuteCommand();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogProvider.Error("编辑角色", ex.StackTrace, ex.Message);

                jsonm.status = 500;
                jsonm.msg    = "保存失败";
            }


            return(Json(jsonm));
        }
Пример #2
0
        private OPResult Update(SysRoleBO role)
        {
            List <SysRoleModule> rms = new List <SysRoleModule>();

            foreach (var m in role.Modules)
            {
                SysRoleModule rm = new SysRoleModule
                {
                    RoleId   = role.ID,
                    ModuleId = m.ID
                };
                rms.Add(rm);
            }
            //该角色被删除的菜单权限,拥有该角色的用户的所有下级用户的相应菜单权限也要一起删除,若同样权限是其它角色赋予则不删除
            //var oldrms = _query.LinqOP.Search<SysRoleModule>(rm => rm.RoleId == role.ID).ToList();
            //oldrms.Except(rms);//原列表中有新列表中没有的权限映射(待级联删除的)
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    LinqOP.Update <SysRole>(role);
                    LinqOP.Delete <SysRoleModule>(rm => rm.RoleId == role.ID);
                    LinqOP.Add <SysRoleModule>(rms);
                    VMGlobal.SysProcessQuery.DB.ExecuteNonQuery("CleanUpDirtyProcess", role.ID);
                    scope.Complete();
                }
                catch (Exception e)
                {
                    return(new OPResult {
                        IsSucceed = false, Message = "更新失败,失败原因:\n" + e.Message
                    });
                }
            }
            if (_rolesOfCurrentOrgnization != null)
            {
                var roleUpdate = _rolesOfCurrentOrgnization.FirstOrDefault(r => r.ID == role.ID);
                if (roleUpdate != null)
                {
                    int index = _rolesOfCurrentOrgnization.IndexOf(roleUpdate);
                    _rolesOfCurrentOrgnization[index] = role; //roleUpdate = role;
                }
            }
            return(new OPResult {
                IsSucceed = true, Message = "更新成功."
            });
        }
Пример #3
0
 private OPResult Add(SysRoleBO role)
 {
     role.CreatorID      = VMGlobal.CurrentUser.ID;
     role.OrganizationID = VMGlobal.CurrentUser.OrganizationID;
     using (TransactionScope scope = new TransactionScope())
     {
         try
         {
             int id = LinqOP.Add <SysRole, int>(role, r => r.ID);
             role.ID = id;
             List <SysRoleModule> rms = new List <SysRoleModule>();
             foreach (var m in role.Modules)
             {
                 SysRoleModule rm = new SysRoleModule
                 {
                     RoleId   = id,
                     ModuleId = m.ID
                 };
                 rms.Add(rm);
             }
             LinqOP.Add <SysRoleModule>(rms);
             if (_rolesOfCurrentOrgnization != null)//新增成功后同步更新_rolesOfCurrentOrgnization
             {
                 _rolesOfCurrentOrgnization.Add(role);
             }
             scope.Complete();
             return(new OPResult {
                 IsSucceed = true, Message = "保存成功."
             });
         }
         catch (Exception e)
         {
             role.ID = default(int);
             return(new OPResult {
                 IsSucceed = false, Message = "保存失败,失败原因:\n" + e.Message
             });
         }
     }
 }