public ActionResult Create(Authority authority) { var json = new JsonResult(); try { using (var ctx = new GlsunViewEntities()) { using (var tran = new TransactionScope())//开启事务 { var loginUser = (from u in ctx.User where u.ULoginName == HttpContext.User.Identity.Name select u).FirstOrDefault(); authority.CreatorID = loginUser.ID; authority.CreationTime = DateTime.Now; ctx.Authority.Add(authority); //给模块添加新权限--通用权限才添加 if (authority.AIsCommon == true) { var moduleList = ctx.Module.Where(m => m.MParentID != 0 && m.MType == "menu"); foreach (var module in moduleList) { ModuleAuthority ma = new ModuleAuthority { AID = authority.ID, MID = module.ID, CreatorID = loginUser.ID, CreationTime = DateTime.Now }; ctx.ModuleAuthority.Add(ma); } } ctx.SaveChanges(); tran.Complete();//必须调用.Complete(),不然数据不会保存 }//出了using代码块如果还没调用Complete(),所有操作就会自动回滚 } json.Data = new { Code = "", Data = "", Message = "保存成功" }; } catch (Exception ex) { json.Data = new { Code = "Exception", Data = "", Message = ex.Message }; } return(json); }
public JsonResult Create(Module module) { var json = new JsonResult(); try { using (var ctx = new GlsunViewEntities()) { using (var tran = new TransactionScope()) { var loginUser = (from u in ctx.User where u.ULoginName == HttpContext.User.Identity.Name select u).FirstOrDefault(); if (loginUser != null) { module.CreatorID = loginUser.ID; module.CreationTime = DateTime.Now; } ctx.Module.Add(module); //添加操作权限 if (module.MParentID != 0 && module.MType == "menu") { foreach (var e in ctx.Authority.Where(a => a.IsEnabled.Value && a.AIsCommon.Value)) { ModuleAuthority ma = new ModuleAuthority { AID = e.ID, MID = module.ID, CreatorID = loginUser.ID, CreationTime = DateTime.Now }; ctx.ModuleAuthority.Add(ma); } } ctx.SaveChanges(); tran.Complete(); //必须调用.Complete(),不然数据不会保存 }//出了using代码块如果还没调用Complete(),所有操作就会自动回滚 } json.Data = new { Code = "", Data = "", Message = "保存成功" }; } catch (Exception ex) { json.Data = new { Code = "Exception", Data = "", Message = ex.Message }; } return(json); }
public ActionResult Authority(ModuleAuth moduleAuth) { var json = new JsonResult(); try { using (var ctx = new GlsunViewEntities()) { var loginUser = (from u in ctx.User where u.ULoginName == HttpContext.User.Identity.Name select u).FirstOrDefault(); //删除未选中的 IEnumerable <Authority> unselected = null; if (moduleAuth.OwnAuthorityID == null) { unselected = ctx.Authority.ToList(); } else { unselected = ctx.Authority.Where(a => !moduleAuth.OwnAuthorityID.Contains(a.ID)); } foreach (var e in unselected) { var maDelete = (from ma in ctx.ModuleAuthority where ma.AID == e.ID && ma.MID == moduleAuth.ModuleID select ma).FirstOrDefault(); if (maDelete != null) { ctx.ModuleAuthority.Remove(maDelete); } } //添加选中的 if (moduleAuth.OwnAuthorityID != null) { foreach (var id in moduleAuth.OwnAuthorityID) { var maAdd = (from ma in ctx.ModuleAuthority where ma.AID == id && ma.MID == moduleAuth.ModuleID select ma).FirstOrDefault(); //不存在则添加 if (maAdd == null) { ModuleAuthority ma = new ModuleAuthority { MID = moduleAuth.ModuleID, AID = id, CreatorID = loginUser.ID, CreationTime = DateTime.Now }; ctx.ModuleAuthority.Add(ma); } } } ctx.SaveChanges(); } json.Data = new { Code = "", Data = moduleAuth, Message = "保存成功" }; } catch (Exception ex) { json.Data = new { Code = "Exception", Data = moduleAuth, Message = ex.Message }; } return(json); }
public ActionResult Edit(Authority authority) { var json = new JsonResult(); try { using (var ctx = new GlsunViewEntities()) { using (var tran = new TransactionScope()) { var loginUser = (from u in ctx.User where u.ULoginName == HttpContext.User.Identity.Name select u).FirstOrDefault(); var authModify = ctx.Authority.Find(authority.ID); if (authModify != null) { var moduleList = ctx.Module.Where(m => m.MParentID != 0 && m.MType == "menu"); //通用选项修改 if (authority.AIsCommon != authModify.AIsCommon) { //改为通用,添加 if (authority.AIsCommon == true) { foreach (var module in moduleList) { ModuleAuthority ma = new ModuleAuthority { AID = authority.ID, MID = module.ID, CreatorID = loginUser.ID, CreationTime = DateTime.Now }; ctx.ModuleAuthority.Add(ma); } } else//否则删除 { foreach (var module in moduleList) { var maDelete = (from ma in ctx.ModuleAuthority where ma.AID == authority.ID && ma.MID == module.ID select ma).FirstOrDefault(); if (maDelete != null) { ctx.ModuleAuthority.Remove(maDelete); } } } } authModify.AName = authority.AName; authModify.ACode = authority.ACode; authModify.AType = authority.AType; authModify.AIcon = authority.AIcon; authModify.AIconType = authority.AIconType; authModify.AClassName = authority.AClassName; authModify.AShowNumber = authority.AShowNumber; authModify.AIsCommon = authority.AIsCommon; authModify.IsEnabled = authority.IsEnabled; authority.EditorID = loginUser.ID; authority.EditingTime = DateTime.Now; } ctx.SaveChanges(); tran.Complete(); } } json.Data = new { Code = "", Data = "", Message = "保存成功" }; } catch (Exception ex) { json.Data = new { Code = "Exception", Data = "", Message = ex.Message }; } return(json); }