2021-01-13 01:24:27 -05:00
|
|
|
|
using Dapper;
|
|
|
|
|
using System;
|
2021-01-12 01:34:14 -05:00
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Configuration;
|
2021-01-13 01:24:27 -05:00
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Data.SQLite;
|
2021-01-12 01:34:14 -05:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
2021-01-13 01:24:27 -05:00
|
|
|
|
using GreatHomeChildcare.Models;
|
2021-01-12 01:34:14 -05:00
|
|
|
|
|
|
|
|
|
namespace GreatHomeChildcare
|
|
|
|
|
{
|
|
|
|
|
class SqliteDataAccess
|
|
|
|
|
{
|
|
|
|
|
#region student
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region guardian
|
2021-01-13 23:15:20 -05:00
|
|
|
|
// ***************** Read *****************
|
|
|
|
|
|
|
|
|
|
/* Gets a Guardian by a distinct pin number. Distinctness enforced elsewhere.
|
|
|
|
|
* INPUT: integer pin#
|
|
|
|
|
* OUTPUT: Guardian object
|
|
|
|
|
*/
|
|
|
|
|
internal Guardian GetGuardianByPin(int guardian_pin_in)
|
|
|
|
|
{
|
|
|
|
|
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
|
|
|
|
|
{
|
|
|
|
|
string strQuery = "SELECT * FROM Guardians WHERE PinNumber = @pin_in";
|
|
|
|
|
Guardian guardian = cnn.Query<Guardian>(strQuery, new { pin_in = guardian_pin_in }).SingleOrDefault();
|
|
|
|
|
return guardian;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region authorized_guardians
|
|
|
|
|
// ***************** Read *****************
|
|
|
|
|
|
|
|
|
|
/* Gets a list of all children per a specific guardian.
|
|
|
|
|
* INPUT: Guardian
|
|
|
|
|
* OUTPUT: List of Child object.
|
|
|
|
|
*/
|
|
|
|
|
internal List<Child> GetChildrenByGuardian(Guardian guardian_in)
|
|
|
|
|
{
|
|
|
|
|
//TODO: Remove once valid login check is implemented.
|
|
|
|
|
if (guardian_in == null)
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
|
|
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
|
|
|
|
|
{
|
|
|
|
|
string strQuery = @"
|
|
|
|
|
SELECT
|
|
|
|
|
Children.id,
|
|
|
|
|
Children.FirstName,
|
|
|
|
|
Children.LastName,
|
|
|
|
|
DOB,
|
|
|
|
|
address,
|
|
|
|
|
race,
|
|
|
|
|
gender,
|
|
|
|
|
photo
|
|
|
|
|
FROM Children
|
|
|
|
|
INNER JOIN Authorized_Guardians on Children.ID = Authorized_Guardians.child_id
|
|
|
|
|
INNER JOIN Guardians on Authorized_Guardians.guardian_id = Guardians.id
|
|
|
|
|
WHERE Guardians.id = @id
|
|
|
|
|
";
|
|
|
|
|
var output = cnn.Query<Child>(strQuery,guardian_in);
|
|
|
|
|
return output.ToList();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-12 01:34:14 -05:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region attendance
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region misc
|
|
|
|
|
#endregion
|
|
|
|
|
|
2021-01-13 01:24:27 -05:00
|
|
|
|
/* Checks to see if this is the first time the application has run.
|
|
|
|
|
* by counting the number of guardians in the guardian table.
|
|
|
|
|
*/
|
|
|
|
|
internal bool isFirstTimeRun()
|
|
|
|
|
{
|
|
|
|
|
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
|
|
|
|
|
{
|
|
|
|
|
string strQuery = "SELECT COUNT(*) FROM Guardians";
|
|
|
|
|
int num_guardians = cnn.Query<int>(strQuery).SingleOrDefault();
|
|
|
|
|
|
|
|
|
|
if (num_guardians > 0)
|
|
|
|
|
return false;
|
|
|
|
|
else
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-12 01:34:14 -05:00
|
|
|
|
#region reports
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
private static string LoadConnectionString(string id = "Default")
|
|
|
|
|
{
|
|
|
|
|
return ConfigurationManager.ConnectionStrings[id].ConnectionString;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|