protected override void OnDelete(SyncStatus status) { if (!MMCDlgHelper.ShowConfirm(CommonConstants.GetSelectedDeleteMsg("secret keys", this.SelectedNodes.Count))) { return; } base.OnDelete(status); var entriesNode = this.ScopeNode as VecsStoreEntriesNode; var dto = entriesNode.ServerDTO; var storeName = entriesNode.StoreName; var storePass = ""; MMCActionHelper.CheckedExec(delegate() { using (var session = new VecsStoreSession(dto.VecsClient, storeName, storePass)) { foreach (ResultNode node in this.SelectedNodes) { var certDTO = node.Tag as Vecs.CertDTO; session.DeleteCertificate(certDTO.Alias); } } }); Refresh(); }
public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= (nint)0) { if (ds is NodesListView) { string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName; switch (data) { case "Private Entities": NSMenuItem addPrivateEntity = new NSMenuItem("Add Private Entity", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsPrivateKeysNode).AddPrivateKeyHandler); menu.AddItem(addPrivateEntity); break; case "Secret Keys": NSMenuItem createCertificate = new NSMenuItem("Add Secret Key", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsSecretKeysNode).AddSecretKey); menu.AddItem(createCertificate); break; case "Trusted Certs": NSMenuItem createSigningRequest = new NSMenuItem("Create Certificate", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsTrustedCertsNode).AddCertificate); menu.AddItem(createSigningRequest); break; default: break; } } else if (ds is CertificateDetailsListView) { CertificateDetailsListView lw = ds as CertificateDetailsListView; CertDTO cert = lw.Entries [(int)_selectedRow]; NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => CertificateService.DisplayX509Certificate2(this, cert.Cert)); menu.AddItem(showCert); NSMenuItem deleteEntry = new NSMenuItem("Delete", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { if (UIErrorHelper.ConfirmDeleteOperation("Are you sure?") == true) { using (var session = new VecsStoreSession(lw.ServerDto.VecsClient, lw.Store, "")) { session.DeleteCertificate(cert.Alias); } lw.Entries.Remove(cert); UIErrorHelper.ShowAlert("", "Successfully deleted the entry."); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadServerData", this); } }); }); menu.AddItem(deleteEntry); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } return(base.MenuForEvent(theEvent)); }