/// <summary> /// Displays the applications in the control. /// </summary> internal void Initialize() { ItemsLV.Items.Clear(); try { IList <HttpAccessRule> accessRules = HttpAccessRule.GetAccessRules(null); if (accessRules == null || accessRules.Count == 0) { Instructions = "No HTTP access rules defined."; AdjustColumns(); return; } // display the list. foreach (HttpAccessRule accessRule in accessRules) { AddItem(accessRule); } AdjustColumns(); } catch (Exception e) { Instructions = e.Message; AdjustColumns(); } }
private void DeleteMI_Click(object sender, EventArgs e) { try { if (ItemsLV.SelectedItems.Count < 1) { return; } DialogResult result = MessageBox.Show( "Are you sure you wish to delete the rules from the list?", "Delete Certificate", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result != DialogResult.Yes) { return; } // remove the items. Dictionary <string, List <HttpAccessRule> > rulesToDelete = new Dictionary <string, List <HttpAccessRule> >(); while (ItemsLV.SelectedItems.Count > 0) { HttpAccessRule rule = ItemsLV.SelectedItems[0].Tag as HttpAccessRule; List <HttpAccessRule> rules = null; if (!rulesToDelete.TryGetValue(rule.UrlPrefix, out rules)) { rulesToDelete[rule.UrlPrefix] = rules = new List <HttpAccessRule>(); } rules.Add(rule); ItemsLV.SelectedItems[0].Remove(); } // delete rules. foreach (KeyValuePair <string, List <HttpAccessRule> > pair in rulesToDelete) { IList <HttpAccessRule> existingRules = HttpAccessRule.GetAccessRules(pair.Key); List <HttpAccessRule> remainingRules = new List <HttpAccessRule>(); for (int ii = 0; ii < existingRules.Count; ii++) { HttpAccessRule existingRule = existingRules[ii]; bool found = false; for (int jj = 0; jj < pair.Value.Count; jj++) { HttpAccessRule ruleToDelete = pair.Value[jj]; if (ruleToDelete.IdentityName == existingRule.IdentityName) { continue; } if (ruleToDelete.Right == existingRule.Right) { continue; } found = true; break; } if (!found) { remainingRules.Add(existingRule); } } HttpAccessRule.SetAccessRules(pair.Key, remainingRules, true); } } catch (Exception exception) { GuiUtils.HandleException(this.Text, MethodBase.GetCurrentMethod(), exception); } }