CryptoCalc/DBInteraction.cs

41 lines
1.7 KiB
C#

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<RawData> LoadTransactions()
{
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString("data"));
var output = _connection.Query<RawData>("select * from RawData", new DynamicParameters());
Debug.WriteLine("Loaded DB data");
return output.ToList();
}
public static List<RawData> LoadTransactionsOfCurrency(string _currency)
{
Debug.WriteLine($"Fetching all {_currency} transactions from Database");
using IDbConnection connection = new SQLiteConnection(Util.GetConnectionString("data"));
return connection.Query<RawData>($"select * from RawData where CryptoCurrency = '{ _currency }'").ToList();
}
}
}