53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using Dapper;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SQLite;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
|
|
namespace CryptoCalc
|
|
{
|
|
public class DBInteraction<T> where T : DBClasses
|
|
{
|
|
public void SaveData(T data)
|
|
{
|
|
if (data is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(data), "No data passed to SQL");
|
|
}
|
|
|
|
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
|
string query = $"insert into {data.DBTableName} {data.DBSaveDataString}";
|
|
_connection.Execute(query, data);
|
|
Debug.WriteLine($"Saved data - DB: {data.DBName} - Table: {data.DBTableName} - Query: {query}");
|
|
}
|
|
|
|
public void ExecuteQuery(T data, string query)
|
|
{
|
|
if (query is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(query), "No query entered");
|
|
}
|
|
|
|
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
|
_connection.Execute($"{query}");
|
|
Debug.WriteLine($"Executed query - DB: {data.DBName} - Query: {query}");
|
|
}
|
|
|
|
public IEnumerable<T> ReturnQuery(T data, string query)
|
|
{
|
|
if (data is null)
|
|
{
|
|
throw new ArgumentNullException(nameof(data), "DBclass is null");
|
|
}
|
|
|
|
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
|
IEnumerable<T> output = _connection.Query<T>($"{query}", new DynamicParameters());
|
|
Debug.WriteLine($"Executed query - DB: {data.DBName} - Query: {query}");
|
|
|
|
return output;
|
|
}
|
|
}
|
|
}
|