git_bsmd/nsw/Source/CoreDeleteTool/Main.cs

106 lines
3.3 KiB
C#

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<MessageCore> messageCores = new SortableBindingList<MessageCore>();
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
}
}