QueueSys/QueueSys/frmEmployeeView.cs

80 lines
2.6 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;
/* References */
// Using a delegate to trigger method on the customer view form
// https://www.coderslexicon.com/passing-data-between-forms-using-delegates-and-events/
namespace QueueSys
{
public partial class frmEmployeeView : Form
{
public frmEmployeeView()
{
InitializeComponent();
}
// Our delegate (which "points" at any method which takes an object and EventArgs)
// Look familiar? This is the signature of most control events on a form
public delegate void SendMessage(object obj, EventArgs e);
// Here is the event we trigger to send messages out to listeners
public event SendMessage OnSendMessage;
/* Execute when program / main form loads.
* Pop up the customer view screen to drag onto second monitor
* creates our second form, says "attach its MessageReceived function to the event"
*/
private void frmEmployeeView_Load(object sender, EventArgs e)
{
frmCustomerView frm = new frmCustomerView();
OnSendMessage += frm.MessageReceived;
frm.Show();
}
/* Enable options menu. */
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
{
frmOptions frm = new frmOptions();
frm.Show();
frm.Activate();
}
// Exits the application.
private void exitAltF4ToolStripMenuItem_Click(object sender, EventArgs e) => Application.Exit();
private void generateReportToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("To-do: Generate excel report from SQL Database.");
}
private void btnAdd_Click(object sender, EventArgs e)
{
SqliteDataAccess sda = new SqliteDataAccess();
EmployeeView evNewCx = new EmployeeView();
evNewCx.customer_name = tbCustomerName.Text;
evNewCx.num_bags = Int32.Parse(cbNumBags.Text);
evNewCx.employee = tbEmployeeName.Text;
sda.SaveCustomer(evNewCx);
//Invoke the delegate to update customer view.
OnSendMessage?.Invoke(this, e);
tbCustomerName.Text = "";
cbNumBags.Text = "";
tbEmployeeName.Text = "";
MessageBox.Show("Customer has been added!", "Queue System", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}