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)); }
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 = "更新成功." }); }
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 }); } } }