using Dapper; using System; using System.Collections.Generic; using System.Data; using System.Data.SQLite; using System.Diagnostics; using System.Linq; using static CryptoCalc.DBClasses; namespace CryptoCalc { public class DBInteraction { public static void SaveData(ref T data) where T : DBClasses { 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.DBSaveDataString}", data); Debug.WriteLine($"Saved {data.DBTableName} DB data"); } //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 LoadTransactions() { using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString("Transactions")); IEnumerable output = _connection.Query("select * from Transactions", new DynamicParameters()); Debug.WriteLine("Loaded DB data"); return output.ToList(); } public static List LoadTransactionsOfCurrency(string currency) { if (currency is null) { throw new ArgumentNullException(nameof(currency)); } Debug.WriteLine($"Fetching all {currency} transactions from Database"); using IDbConnection connection = new SQLiteConnection(Util.GetConnectionString("Transactions")); return connection.Query($"select * from Transactions where Currency = '{ currency.ToUpper() }'") .ToList(); } } }