From 38c160968a33ecb9bd2c5178ff0db02ee1533554 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sat, 12 Feb 2022 14:38:30 +0100 Subject: [PATCH] Generic SQL interaction working --- DBInteraction.cs | 12 ++++++++++++ MainWindow.xaml.cs | 48 ++++++++++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 21 deletions(-) diff --git a/DBInteraction.cs b/DBInteraction.cs index 94489e6..0460c4b 100644 --- a/DBInteraction.cs +++ b/DBInteraction.cs @@ -16,6 +16,7 @@ namespace CryptoCalc { throw new ArgumentNullException(nameof(data)); } + using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString(data.DBTableName)); cnn.Execute($"insert into {data.DBTableName} {data.DBSaveDataString}", data); Debug.WriteLine($"Saved {data.DBTableName} DB data"); @@ -35,6 +36,17 @@ namespace CryptoCalc using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(tableName)); return _connection.Query($"select * from {tableName}", new DynamicParameters()); } + + public IEnumerable QueryData(string tableName, string query) + { + if (tableName is null) + { + throw new ArgumentNullException(nameof(query)); + } + + using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString(tableName)); + return _connection.Query($"{query}", new DynamicParameters()); + } } } } diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 1baa85a..1ff8c63 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -9,6 +9,12 @@ namespace CryptoCalc { private readonly Random rand = new(); + private DBInteraction.GenericDB transactionDB = new(); + private DBInteraction.GenericDB walletDB = new(); + + private Transaction genericT = new(); + private Wallet genericW = new(); + public MainWindow() { InitializeComponent(); @@ -16,46 +22,46 @@ namespace CryptoCalc private void saveButton_Click(object sender, RoutedEventArgs e) { - Transaction dummy = DummyTransaction(); - DBInteraction.SaveData(ref dummy); + genericT = DummyTransaction(); + DBInteraction.SaveData(ref genericT); } private void saveWalletButton_Click(object sender, RoutedEventArgs e) { - Wallet dummy = DummyWallet(); - DBInteraction.SaveData(ref dummy); + genericW = DummyWallet(); + DBInteraction.SaveData(ref genericW); } private void saveButtonFromInput_Click(object sender, RoutedEventArgs e) { - Transaction rd = new(inputCurrency.Text, Convert.ToSingle(inputAmount.Text), inputType.Text); - DBInteraction.SaveData(ref rd); + genericT = new(inputCurrency.Text, Convert.ToSingle(inputAmount.Text), inputType.Text); + DBInteraction.SaveData(ref genericT); } private void readButton_click(object sender, RoutedEventArgs e) { - IEnumerable transactions = ReadTransactionFromDB(); - foreach (Transaction x in transactions) + IEnumerable transactions = transactionDB.LoadAllData(genericT.DBTableName); + foreach (Transaction t in transactions) { - Debug.WriteLine($"{x.GetLocalTimeFromUnixTime(x.UnixTime)} *** {x.Currency} - {x.Amount}"); + Debug.WriteLine($"{t.GetLocalTimeFromUnixTime(t.UnixTime)} *** {t.Currency} - {t.Amount}"); } } private void searchButton_Click(object sender, RoutedEventArgs e) { - //IEnumerable transactions = ReadTransactionFromDB("Currency"); + string query = $"SELECT * from {genericT.DBTableName} WHERE {nameof(genericT.Currency)}=\'{currencyText.Text}\'"; + IEnumerable transactions = transactionDB.QueryData(genericT.DBTableName, query); //transactions = DBInteraction.LoadTransactionsOfCurrency(currencyText.Text); - //transactionsFoundListBox.Items.Clear(); - //foreach (Transaction x in transactions) - //{ - // transactionsFoundListBox.Items.Add(x.FullInfo); - //} + transactionsFoundListBox.Items.Clear(); + foreach (Transaction x in transactions) + { + transactionsFoundListBox.Items.Add(x.FullInfo); + } } - private IEnumerable ReadTransactionFromDB() - { - Transaction t = new(); - DBInteraction.GenericDB db = new(); - return db.LoadAllData(t.DBTableName); - } + //private IEnumerable ReadTransactionFromDB() + //{ + // Transaction t = new(); + // return transactionDB.LoadAllData(t.DBTableName); + //} private Transaction DummyTransaction() {