using C969Project.Data; using C969Project.Data.Models; namespace C969Project; public partial class CustomersForm : Form { private List? _customers; private AddUpdateCustomerForm _form = new(); public CustomersForm() { InitializeComponent(); UpdateCustomersList(null, EventArgs.Empty); Shown += UpdateCustomersList; AddButton.Click += (sender, args) => { _form.InitAdd(); _form.UpdateCustomersList += UpdateCustomersList; }; ModifyButton.Click += (sender, args) => { if (_customers is null) return; var selectedCustomer = _customers[CustomersDataGrid.CurrentCell.RowIndex]; _form.InitUpdate(selectedCustomer); _form.UpdateCustomersList += UpdateCustomersList; }; DeleteButton.Click += (sender, args) => { if (CustomersDataGrid.CurrentCell is null || CustomersDataGrid.CurrentCell.RowIndex > _customers?.Count) { MessageBox.Show("Please select a customer to delete"); return; } var selectedCustomer = _customers?[CustomersDataGrid.CurrentCell.RowIndex]; var result = MessageBox.Show("Are you sure you want to delete this record?", "Delete Record", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.OK) { _customers.Remove(selectedCustomer); DatabaseHelper.DeleteCustomer(selectedCustomer); UpdateCustomersList(null, EventArgs.Empty); } }; } public void UpdateCustomersList(object? sender, EventArgs args) { if (_customers != null && _customers.Count > 0) _customers.Clear(); _customers = DatabaseHelper.RetrieveCustomers(); CustomersDataGrid.DataSource = _customers; } }