using Dapper; using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Diagnostics; using System.Linq; using static CryptoCalc.DB_Classes; namespace CryptoCalc { public class DBInteraction { public static void SaveData(ref T _data) where T : IDBClasses { if (_data is null) { throw new ArgumentNullException(nameof(_data)); } using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString(_data.DBTableName)); cnn.Execute($"insert into {_data.DBTableName} {_data.DBVariables}", _data); Debug.WriteLine($"Saved {_data.DBTableName} DB data"); } //public static void SaveTransaction(RawData _data) //{ // if (_data is null) // { // throw new ArgumentNullException(nameof(_data)); // } // using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString(_data.DBTableName)); // cnn.Execute($"insert into {_data.DBTableName} (Date_Year, Date_Month, Date_Day, Time_Hour, Time_Minute, Time_Second, DateTimeString, CryptoCurrency, Amount, TransactionType, Service, Comment) values (@Date_Year, @Date_Month, @Date_Day, @Time_Hour, @Time_Minute, @Time_Second, @DateTimeString, @CryptoCurrency, @Amount, @TransactionType, @Service, @Comment)", _data); // Debug.WriteLine("Saved DB data"); //} //public static void SaveNewWallet(Wallet _data) //{ // if (_data is null) // { // throw new ArgumentNullException(nameof(_data)); // } // using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString(_data.DBTableName)); // cnn.Execute($"insert into {_data.DBTableName} (wCreationYear, wCreationMonth, wCreationDay, wPlatform, wName, wCurrency, wBalance, wDefaultWallet, wNotes) values (@wCreationYear, @wCreationMonth, @wCreationDay, @wPlatform, @wName, @wCurrency, @wBalance, @wDefaultWallet, @wNotes)", _data); // //cnn.Execute("insert into RawData (wCreationYear, wCreationMonth, wCreationDay, wPlatform, wName, wCurrency, wBalance, wDefaultWallet, wNotes) values ()", _walletData); // Debug.WriteLine("Saved Wallet"); //} public static List LoadTransactions() { using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString("RawData")); var output = _connection.Query("select * from RawData", new DynamicParameters()); Debug.WriteLine("Loaded DB data"); return output.ToList(); } public static List LoadTransactionsOfCurrency(string _currency) { Debug.WriteLine($"Fetching all {_currency} transactions from Database"); using IDbConnection connection = new SQLiteConnection(Util.GetConnectionString("RawData")); return connection.Query($"select * from RawData where CryptoCurrency = '{ _currency }'").ToList(); } } }