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 SaveTransaction(RawData _rawData) { if (_rawData is null) { throw new ArgumentNullException(nameof(_rawData)); } using IDbConnection cnn = new SQLiteConnection(Util.GetConnectionString("data")); cnn.Execute("insert into RawData (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)", _rawData); Debug.WriteLine("Saved DB data"); } public static List LoadTransactions() { using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString("data")); 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("data")); return connection.Query($"select * from RawData where CryptoCurrency = '{ _currency }'").ToList(); } } }