using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using bsmd.database; namespace CoreDeleteTool { public partial class Main : Form { SortableBindingList messageCores = new SortableBindingList(); public Main() { InitializeComponent(); } #region overrides protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (DBManager.Instance.Connect(Properties.Settings.Default.ConnectionString)) { foreach (MessageCore mc in DBManager.Instance.GetMessageCoresByStatus(MessageCore.BSMDStatus.PREPARE)) this.messageCores.Add(mc); } else { MessageBox.Show("Cannot connect to database!"); // create a dummy cores MessageCore mc = new MessageCore(); mc.IMO = "1234567"; mc.ETA = DateTime.Now; mc.PoC = "ZZUKN"; mc.Portname = "Hamburg"; this.messageCores.Add(mc); mc = new MessageCore(); mc.IMO = "9999999"; mc.ETA = DateTime.Now + TimeSpan.FromHours(1); mc.PoC = "DEBRE"; mc.Portname = "Bremen"; this.messageCores.Add(mc); } this.dataGridView.DataSource = this.messageCores; } #endregion #region event handler private void buttonDelete_Click(object sender, EventArgs e) { if ((this.dataGridView.SelectedRows.Count > 0) && DBManager.Instance.IsConnected) { if (MessageBox.Show("Delete selected item(s)?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { for (int i = 0; i < this.dataGridView.SelectedRows.Count; i++) { MessageCore selectedCore = this.dataGridView.SelectedRows[i].DataBoundItem as MessageCore; if (selectedCore != null) { DBManager.Instance.DeleteCore(selectedCore); this.messageCores.Remove(selectedCore); } } // TODO:refresh data source? } } } private void buttonClose_Click(object sender, EventArgs e) { this.Close(); } private void dataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { foreach (DataGridViewColumn column in dataGridView.Columns) column.SortMode = DataGridViewColumnSortMode.Automatic; } private void menuStripDelete_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { this.buttonDelete_Click(sender, new EventArgs()); } #endregion } }