82 lines
3.0 KiB
C#
82 lines
3.0 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 Customer { 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 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 List<CustomerView> LoadCustomerView()
|
|
{
|
|
using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString()))
|
|
{
|
|
string strQuery = "SELECT customer_name as Customer,status_lookup.status as Status,Cast ((JulianDay('now') - JulianDay(start_time)) * 24 * 60 As Integer) as TimeElapsed FROM active_customers INNER JOIN status_lookup on active_customers.status_id=status_lookup.status_id ORDER BY active_customers.status_id";
|
|
|
|
var output = cnn.Query<CustomerView>(strQuery, new DynamicParameters());
|
|
return output.ToList();
|
|
}
|
|
}
|
|
|
|
public 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 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;
|
|
}
|
|
}
|
|
}
|