public ActionResult Data(string ownerGuid, ExecutorTypes ownerType) { NameValueCollection nvc = this.Request.Form; Dictionary<Guid, PermissionItem> changedPermissionItems = new Dictionary<Guid, PermissionItem>(); //获取选中的radio值 for (int i = 0; i < nvc.Count; i++) { string currentKey = nvc.AllKeys[i]; string currentValue = nvc[i]; if (currentKey.StartsWith(SystemConst.PermissionItemValuePrefix) && currentKey.EndsWith("||0")) { string settingName = currentKey.Substring(0,currentKey.Length-1); int guidStartPos = SystemConst.PermissionItemValuePrefix.Length; int seperatorPos = currentKey.LastIndexOf(SystemConst.PermissionItemGuidValueSeperator); int valueStarPos = seperatorPos + SystemConst.PermissionItemGuidValueSeperator.Length; string settingKeyString = currentKey.Substring(guidStartPos, seperatorPos - guidStartPos); Guid settingkeyGuid = new Guid(settingKeyString); string settingValue = nvc[settingName]; if (string.IsNullOrWhiteSpace(settingValue) == false) { int permissionItemValue; bool isSuccessful = int.TryParse(settingValue, out permissionItemValue); if (isSuccessful == true) { //changedPermissionItems[settingKey] = permissionItemValue; if (changedPermissionItems.ContainsKey(settingkeyGuid)) { changedPermissionItems[settingkeyGuid].PermissionItemValue = permissionItemValue; } else { PermissionItem permissionItem = new PermissionItem(settingkeyGuid, permissionItemValue, BusinessUserBLL.CurrentUser.UserGuid, BusinessUserBLL.CurrentUser.UserType, Logics.False); changedPermissionItems.Add(settingkeyGuid, permissionItem); } } } } } foreach (var permissionItem in changedPermissionItems) { BusinessPermission currentItem = new BusinessPermission(permissionItem.Value); currentItem.OwnerKey = ownerGuid.ToString(); currentItem.OwnerType = ownerType; currentItem.PermissionMode = PermissionModes.Allow; currentItem.PermissionKind = PermissionKinds.Data; BusinessPermissionBLL.Instance.CreateOrUpdate(currentItem); } return Json(new LogicStatusInfo(true, "保存权限成功")); }
public ActionResult Index(string ownerGuid, ExecutorTypes ownerType, PermissionModes permissionMode) { NameValueCollection nvc = this.Request.Form; Dictionary<Guid, PermissionItem> changedPermissionItems = new Dictionary<Guid, PermissionItem>(); //获取选中的checkbox for (int i = 0; i < nvc.Count; i++) { string currentKey = nvc.AllKeys[i]; string currentValue = nvc[i]; if (currentKey.StartsWith(SystemConst.PermissionItemValuePrefix) && currentValue.ToLower() == "on") { int guidStartPos = SystemConst.PermissionItemValuePrefix.Length; int seperatorPos = currentKey.LastIndexOf(SystemConst.PermissionItemGuidValueSeperator); int valueStarPos = seperatorPos + SystemConst.PermissionItemGuidValueSeperator.Length; string permissionItemGuidString = currentKey.Substring(guidStartPos, seperatorPos - guidStartPos); Guid permissionItemGuid = new Guid(permissionItemGuidString); string permissionItemValueString = currentKey.Substring(valueStarPos); int permissionItemValue = 0; bool isSuccessful = int.TryParse(permissionItemValueString, out permissionItemValue); if (isSuccessful == true) { if (changedPermissionItems.ContainsKey(permissionItemGuid)) { changedPermissionItems[permissionItemGuid].PermissionItemValue |= permissionItemValue; } else { PermissionItem permissionItem = new PermissionItem(permissionItemGuid, permissionItemValue, BusinessUserBLL.CurrentUser.UserGuid, BusinessUserBLL.CurrentUser.UserType, Logics.False); changedPermissionItems.Add(permissionItemGuid, permissionItem); } } } } foreach ( var permissionItem in changedPermissionItems) { BusinessPermission currentItem = new BusinessPermission(permissionItem.Value); currentItem.OwnerKey = ownerGuid.ToString(); currentItem.OwnerType = ownerType; currentItem.PermissionMode = permissionMode; currentItem.PermissionKind = PermissionKinds.Operating; BusinessPermissionBLL.Instance.CreateOrUpdate(currentItem); } return Json(new LogicStatusInfo(true, "保存权限成功")); }