CryptoCalc/DBInteraction.cs

65 lines
3.1 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 SaveData<T>(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<RawData> LoadTransactions()
{
using IDbConnection _connection = new SQLiteConnection(Util.GetConnectionString("RawData"));
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("RawData"));
return connection.Query<RawData>($"select * from RawData where CryptoCurrency = '{ _currency }'").ToList();
}
}
}