/// <summary> /// 保存授权模板页 /// </summary> /// <param name="UserID"></param> public ActionResult SavePrivilegeTemplatePage(Guid UserID) { if (!base.CheckPrivilege("EnableEdit"))//权限验证 return RedirectToAction("ErrorPage", "Home", new { message = "Sorry you have no privilege to visit the Page" }); GeneralPrivTemplate oNewModel = new GeneralPrivTemplate(); ViewBag.UserID = UserID; return View(oNewModel); }
/// <summary> /// 保存授权模板 /// </summary> /// <param name="UserID"></param> /// <param name="TemplatePage"></param> public void SavePrivilegeTemplate(FormCollection formCollection, GeneralPrivTemplate oBackModel) { Guid UserID = Guid.Parse(formCollection["UserID"].ToString()); List<MemberPrivilege> oMemberPrivilegeList = dbEntity.MemberPrivileges.Where(p => p.UserID == UserID && p.Deleted == false).ToList(); List<GeneralPrivTemplate> oOldTemplateList = dbEntity.GeneralPrivTemplates.Where(temp => temp.Code == oBackModel.Code).ToList(); if (oOldTemplateList.Count > 0) {//如果原来存在模板, 则先删除模板中所有权限 foreach (GeneralPrivTemplate item in oOldTemplateList) { item.Deleted = true; List<GeneralPrivItem> oOldTemplateItemList = dbEntity.GeneralPrivItems.Where(p => p.PrivID == item.Gid && p.Deleted==false).ToList(); if (oOldTemplateItemList.Count > 0) { foreach (GeneralPrivItem privitem in oOldTemplateItemList) { privitem.Deleted = true; } } } dbEntity.SaveChanges(); } foreach (MemberPrivilege oMemberPrivilege in oMemberPrivilegeList) { GeneralPrivTemplate oOldGeneralPrivTemplate = oOldTemplateList.Where(temp => temp.Ptype == oMemberPrivilege.Ptype).FirstOrDefault(); bool bHasBefore = oOldGeneralPrivTemplate == null ? false : true; if (bHasBefore) {//之前有模板 则更新原来模板 oOldGeneralPrivTemplate.Deleted = false; oOldGeneralPrivTemplate.Pstatus = oMemberPrivilege.Pstatus; oOldGeneralPrivTemplate.Remark = oBackModel.Remark; List<MemberPrivItem> oMemberPrivItemList = dbEntity.MemberPrivItems.Where(p => p.PrivID == oMemberPrivilege.Gid&&p.Deleted==false).ToList(); foreach (MemberPrivItem oMemberPrivItem in oMemberPrivItemList) { GeneralPrivItem oOldGeneralPrivItem = dbEntity.GeneralPrivItems.Where(p => p.PrivID == oOldGeneralPrivTemplate.Gid && p.RefID == oMemberPrivItem.RefID).FirstOrDefault(); if (oOldGeneralPrivItem != null) {//原来有GeneralPrivItem 更新 oOldGeneralPrivItem.Deleted = false; oOldGeneralPrivItem.NodeCode = oMemberPrivItem.NodeCode; oOldGeneralPrivItem.NodeValue = oMemberPrivItem.NodeValue; oOldGeneralPrivItem.Remark = oMemberPrivItem.Remark; } else {//没有 则添加 GeneralPrivItem oNewPrivItem = new GeneralPrivItem { PrivID = oOldGeneralPrivTemplate.Gid, RefID = oMemberPrivItem.RefID, NodeCode = oMemberPrivItem.NodeCode, NodeValue = oMemberPrivItem.NodeValue, Remark = oMemberPrivItem.Remark }; dbEntity.GeneralPrivItems.Add(oNewPrivItem); } } } else {//添加 GeneralPrivTemplate oNewPriv = new GeneralPrivTemplate { Code = oBackModel.Code, Ptype = oMemberPrivilege.Ptype, Pstatus = oMemberPrivilege.Pstatus, Remark = oBackModel.Remark }; dbEntity.GeneralPrivTemplates.Add(oNewPriv); dbEntity.SaveChanges(); List<MemberPrivItem> oMemberPrivItemList = dbEntity.MemberPrivItems.Where(p => p.PrivID == oMemberPrivilege.Gid&&p.Deleted==false).ToList(); foreach (MemberPrivItem oMemberPrivItem in oMemberPrivItemList) { GeneralPrivItem oNewPrivItem = new GeneralPrivItem { PrivID = oNewPriv.Gid, RefID = oMemberPrivItem.RefID, NodeCode = oMemberPrivItem.NodeCode, NodeValue = oMemberPrivItem.NodeValue, Remark = oMemberPrivItem.Remark }; dbEntity.GeneralPrivItems.Add(oNewPrivItem); } } } dbEntity.SaveChanges(); }