Refactored DB interaction
This commit is contained in:
parent
a82928440c
commit
251760a674
|
@ -8,33 +8,45 @@ using System.Linq;
|
||||||
|
|
||||||
namespace CryptoCalc
|
namespace CryptoCalc
|
||||||
{
|
{
|
||||||
public class DBInteraction
|
public class DBInteraction<T> where T : DBClasses
|
||||||
{
|
{
|
||||||
public static void SaveData<T>(T data) where T : DBClasses
|
public void SaveData(T data)
|
||||||
{
|
{
|
||||||
if (data is null)
|
if (data is null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(data), "No data passed to SQL");
|
throw new ArgumentNullException(nameof(data), "No data passed to SQL");
|
||||||
}
|
}
|
||||||
|
|
||||||
using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
||||||
cnn.Execute($"insert into {data.DBTableName} {data.DBSaveDataString}", data);
|
string query = $"insert into {data.DBTableName} {data.DBSaveDataString}";
|
||||||
Debug.WriteLine($"Saved {data.DBTableName} DB data");
|
_connection.Execute(query, data);
|
||||||
|
Debug.WriteLine($"Saved data - DB: {data.DBName} - Table: {data.DBTableName} - Query: {query}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ExecuteQuery(T data, string query)
|
||||||
public class GenericDB<T> where T : DBClasses
|
|
||||||
{
|
{
|
||||||
public IEnumerable<T> QueryData(T data, string query)
|
if (query is null)
|
||||||
{
|
{
|
||||||
if (data is null)
|
throw new ArgumentNullException(nameof(query), "No query entered");
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(data), "DBclass is null");
|
|
||||||
}
|
|
||||||
|
|
||||||
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(data.DBName));
|
|
||||||
return _connection.Query<T>($"{query}", new DynamicParameters());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,11 @@ namespace CryptoCalc
|
||||||
{
|
{
|
||||||
private readonly Random rand = new();
|
private readonly Random rand = new();
|
||||||
|
|
||||||
private DBInteraction.GenericDB<Transaction> transactionDB = new();
|
private readonly DBInteraction<Transaction> transactionDB = new();
|
||||||
private DBInteraction.GenericDB<Wallet> walletDB = new();
|
private readonly DBInteraction<Wallet> walletDB = new();
|
||||||
|
|
||||||
private Transaction genericT = new();
|
private readonly Transaction genericT = new();
|
||||||
private Wallet genericW = new();
|
private readonly Wallet genericW = new();
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
|
@ -22,22 +22,22 @@ namespace CryptoCalc
|
||||||
|
|
||||||
private void saveButton_Click(object sender, RoutedEventArgs e)
|
private void saveButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
DBInteraction.SaveData(DummyTransaction());
|
transactionDB.SaveData(DummyTransaction());
|
||||||
}
|
}
|
||||||
private void saveWalletButton_Click(object sender, RoutedEventArgs e)
|
private void saveWalletButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
DBInteraction.SaveData(DummyWallet());
|
walletDB.SaveData(DummyWallet());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveButtonFromInput_Click(object sender, RoutedEventArgs e)
|
private void saveButtonFromInput_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
DBInteraction.SaveData(new Transaction(inputCurrency.Text, Convert.ToSingle(inputAmount.Text), inputType.Text));
|
transactionDB.SaveData(new Transaction(inputCurrency.Text, Convert.ToSingle(inputAmount.Text), inputType.Text));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readButton_click(object sender, RoutedEventArgs e)
|
private void readButton_click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
string query = $"select * from {genericT.DBTableName}";
|
string query = $"select * from {genericT.DBTableName}";
|
||||||
IEnumerable <Transaction> transactions = transactionDB.QueryData(genericT, query);
|
IEnumerable <Transaction> transactions = transactionDB.ReturnQuery(genericT, query);
|
||||||
foreach (Transaction t in transactions)
|
foreach (Transaction t in transactions)
|
||||||
{
|
{
|
||||||
Debug.WriteLine($"{t.GetLocalTimeFromUnixTime(t.UnixTime)} *** {t.Currency} - {t.Amount}");
|
Debug.WriteLine($"{t.GetLocalTimeFromUnixTime(t.UnixTime)} *** {t.Currency} - {t.Amount}");
|
||||||
|
@ -46,7 +46,7 @@ namespace CryptoCalc
|
||||||
private void searchButton_Click(object sender, RoutedEventArgs e)
|
private void searchButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
string query = $"SELECT * from {genericT.DBTableName} WHERE {nameof(genericT.Currency)}=\'{currencyText.Text}\'";
|
string query = $"SELECT * from {genericT.DBTableName} WHERE {nameof(genericT.Currency)}=\'{currencyText.Text}\'";
|
||||||
IEnumerable<Transaction> transactions = transactionDB.QueryData(genericT, query);
|
IEnumerable<Transaction> transactions = transactionDB.ReturnQuery(genericT, query);
|
||||||
transactionsFoundListBox.Items.Clear();
|
transactionsFoundListBox.Items.Clear();
|
||||||
foreach (Transaction x in transactions)
|
foreach (Transaction x in transactions)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue