130 lines
4.3 KiB
C#
130 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using GreatHomeChildcare.Models;
|
|
|
|
/* Refs:
|
|
* https://stackoverflow.com/questions/10063770/how-to-add-a-new-row-to-datagridview-programmatically
|
|
* https://stackoverflow.com/questions/3370236/changing-the-row-height-of-a-datagridview
|
|
*/
|
|
|
|
namespace GreatHomeChildcare
|
|
{
|
|
public partial class frmAdminForm : Form
|
|
{
|
|
//globals for cheap access.
|
|
SqliteDataAccess SqliteDataAccess = new SqliteDataAccess();
|
|
public static int child_id = 0;
|
|
|
|
public frmAdminForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
// Load the datagridview of children when this form opens.
|
|
private void frmAdminForm_Load(object sender, EventArgs e)
|
|
{
|
|
RefreshAdminView();
|
|
}
|
|
|
|
/* Load the admin form with a datagridview of
|
|
* all the children in the sql database.
|
|
* the 'id' field is present in the datagridview for easy access
|
|
* but is hidden in the UI.
|
|
* INPUT: List of all children
|
|
* OUTPUT: Datagridview.
|
|
*/
|
|
private void RefreshAdminView()
|
|
{
|
|
dgvChildren.Rows.Clear();
|
|
|
|
List<Child> children = new List<Child>();
|
|
children = SqliteDataAccess.GetAllChildren();
|
|
|
|
foreach (Child c in children)
|
|
{
|
|
Image photo = (c.photo != null) ? ImageWrangler.ByteArrayToImage(c.photo) : Properties.Resources.child;
|
|
dgvChildren.Rows.Add(c.id, photo, c.DisplayName);
|
|
}
|
|
}
|
|
|
|
//Close this screen, we're all done here.
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
/* VS generated delegate to handle report button clicking
|
|
* Pops up the report form and hides this one.
|
|
*/
|
|
private void btnReports_Click(object sender, EventArgs e)
|
|
{
|
|
Form frmRep = new frmReports();
|
|
|
|
//We can use the same event handler here, don't mind the name.
|
|
frmRep.FormClosed += new FormClosedEventHandler(CrudFormClosed);
|
|
frmRep.Show();
|
|
Hide();
|
|
}
|
|
|
|
/* Pop-open a new form for crud operations for children
|
|
* and their guardians. Be sure you set the child_id
|
|
* to -1 here just to be on the super-safe side.
|
|
*/
|
|
private void btnAdd_Click(object sender, EventArgs e)
|
|
{
|
|
child_id = -1; //ENSURE!!!!
|
|
|
|
ShowChildCrudForm();
|
|
}
|
|
|
|
/* Call the same crud form for adding a new child
|
|
* but store the child_id so the crud form
|
|
* can pick it up on form load.
|
|
*/
|
|
private void btnUpdate_Click(object sender, EventArgs e)
|
|
{
|
|
/* Get the child's database ID which is secretly hidden
|
|
* in the datagrid view at column 0. Since value is an
|
|
* Object, cast it to Int because that's what we know it is.
|
|
*/
|
|
child_id = (int)dgvChildren.CurrentRow.Cells[0].Value;
|
|
|
|
ShowChildCrudForm();
|
|
}
|
|
|
|
/* Seperate function to show the crud form
|
|
* because both the add and the update buttons
|
|
* will show the same crud form.
|
|
* INPUT: void
|
|
* OUTPUT: void
|
|
*/
|
|
private void ShowChildCrudForm()
|
|
{
|
|
Form frmCrud = new frmChildCrud();
|
|
frmCrud.FormClosed += new FormClosedEventHandler(CrudFormClosed);
|
|
frmCrud.Show();
|
|
Hide();
|
|
}
|
|
|
|
//Show this admin screen after the child crud form is closed.
|
|
private void CrudFormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
RefreshAdminView();
|
|
Show();
|
|
}
|
|
|
|
/* Allow the admin to quit the program as a normal login
|
|
* will not be able to exit the attendence program
|
|
* from the main pin screen on the shared tablet.
|
|
*/
|
|
private void btnQuit_Click(object sender, EventArgs e)
|
|
{
|
|
MessageBox.Show("Thank you for using the program! Your data has been saved. Good bye!", "Great Home Childcare", MessageBoxButtons.OK, MessageBoxIcon.None);
|
|
//TODO: I got the program to crash here by exiting from reports form then clicking quit??
|
|
Environment.Exit(0);
|
|
}
|
|
}
|
|
}
|