80 lines
2.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|