private void EditMI_Click(object sender, EventArgs e) { try { FileSystemAccessRule fileSystemRule = SelectedTag as FileSystemAccessRule; ApplicationAccessRule applicationRule = SelectedTag as ApplicationAccessRule; if (fileSystemRule == null && applicationRule == null) { return; } if (fileSystemRule != null) { applicationRule = new ApplicationAccessRule(); applicationRule.RuleType = ApplicationAccessRule.Convert(fileSystemRule.AccessControlType); applicationRule.Right = GetEffectiveRight(fileSystemRule); applicationRule.IdentityReference = fileSystemRule.IdentityReference; } if (!new AccessRuleDlg().ShowDialog(applicationRule)) { return; } UpdateItem(ItemsLV.SelectedItems[0], applicationRule); AdjustColumns(); } catch (Exception exception) { GuiUtils.HandleException(this.Text, System.Reflection.MethodBase.GetCurrentMethod(), exception); } }
/// <summary> /// Returns the rules in the control. /// </summary> public IList <ApplicationAccessRule> GetAccessRules() { if (ItemsLV.Items.Count == 1) { if (ItemsLV.Items[0].Text == Instructions) { return(new ApplicationAccessRule[0]); } } List <ApplicationAccessRule> rules = new List <ApplicationAccessRule>(); for (int ii = 0; ii < ItemsLV.Items.Count; ii++) { ApplicationAccessRule applicationRule = ItemsLV.Items[ii].Tag as ApplicationAccessRule; if (applicationRule != null) { rules.Add(applicationRule); continue; } FileSystemAccessRule fileSystemRule = ItemsLV.Items[ii].Tag as FileSystemAccessRule; if (fileSystemRule != null) { applicationRule = new ApplicationAccessRule(); applicationRule.RuleType = ApplicationAccessRule.Convert(fileSystemRule.AccessControlType); applicationRule.Right = GetEffectiveRight(fileSystemRule); applicationRule.IdentityReference = fileSystemRule.IdentityReference; rules.Add(applicationRule); continue; } } return(rules.ToArray()); }