using Dapper; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SQLite; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QueueSys { public class CustomerView { public string customerName { get; } public string status { get; } public string timeElapsed { get; } } public class EmployeeView { public int id { get; } public string customer_name { get; set; } public int num_bags { get; set; } public string employee { get; set; } public int status { get; set; } } public class SqliteDataAccess { public static List LoadEmployeeView() { //A using statement protects us as a failsafe: it guarantees the connection to the //database will be closed, even in event of an application or computer crash. using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { string strQuery = "SELECT id,customer_name,num_bags,employee,status FROM active_customers;"; var output = cnn.Query(strQuery, new DynamicParameters()); return output.ToList(); } } public static List LoadCustomerView() { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { string strQuery = "SELECT customer_name,status FROM active_customers;"; var output = cnn.Query(strQuery, new DynamicParameters()); return output.ToList(); } } public static void SaveCustomer(EmployeeView customer) { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { string strQuery = "INSERT INTO active_customers (customer_name, num_bags, employee, status_id) VALUES (@customer_name, @num_bags, @employee, @status)"; cnn.Execute(strQuery, customer); } } public static void ArchiveCustomer(EmployeeView customer) { using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) { string strQuery = "INSERT INTO archive(id, customer_name,num_bags,employee,status,start_time) SELECT id,customer_name,num_bags,employee,status,start_time WHERE id=@id"; cnn.Execute(strQuery, customer); // strQuery = "DELETE FROM active_customers WHERE id=@id"; // cnn.Execute(strQuery, customer); } } private static string LoadConnectionString(string id="Default") { return ConfigurationManager.ConnectionStrings[id].ConnectionString; } } }