QueueSys/QueueSys/SqliteDataAccess.cs

82 lines
2.8 KiB
C#

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<EmployeeView> 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<EmployeeView>(strQuery, new DynamicParameters());
return output.ToList();
}
}
public static List<CustomerView> LoadCustomerView()
{
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
{
string strQuery = "SELECT customer_name,status FROM active_customers;";
var output = cnn.Query<CustomerView>(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;
}
}
}