diff --git a/DBClasses.cs b/DBClasses.cs
index 81f472c..a78ddb9 100644
--- a/DBClasses.cs
+++ b/DBClasses.cs
@@ -75,9 +75,10 @@ namespace CryptoCalc
public Transaction() { SetDBStrings(); }
- public Transaction(string currency, float amount, string type)
+ public Transaction(int walletID, string currency, float amount, string type)
{
SaveUnixTimeNow();
+ WalletID = walletID;
Currency = currency;
Amount = amount;
TransactionType = type;
@@ -120,23 +121,23 @@ namespace CryptoCalc
+ $"@{nameof(Note)}";
}
- public string FullInfo => $"{ Index } { GetLocalTimeFromUnixTime(UnixTime) } { Currency } { Amount } { TransactionType }";
+ public string FullInfo => $"{ Index } {WalletID} { GetLocalTimeFromUnixTime(UnixTime) } { Currency } { Amount } { TransactionType }";
public string CreateTable(string walletTableName)
{
return
$"CREATE TABLE IF NOT EXISTS \"{DBTableName}\" ("
- + $"\"{nameof(Index)}\" INTEGER NOT NULL UNIQUE,"
- + $"\"{nameof(WalletID)}\" INTEGER NOT NULL,"
- + $"\"{nameof(UnixTime)}\" INTEGER NOT NULL,"
- + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
- + $"\"{nameof(Amount)}\" REAL NOT NULL,"
- + $"\"{nameof(TransactionType)}\" TEXT NOT NULL,"
- + $"\"{nameof(FeeCurrency)}\" TEXT,"
- + $"\"{nameof(FeeAmount)}\" REAL,"
- + $"\"{nameof(Platform)}\" TEXT,"
- + $"\"{nameof(Note)}\" TEXT,"
- + $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT),"
+ + $"\"{nameof(Index)}\" INTEGER NOT NULL UNIQUE,"
+ + $"\"{nameof(WalletID)}\" INTEGER NOT NULL,"
+ + $"\"{nameof(UnixTime)}\" INTEGER NOT NULL,"
+ + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
+ + $"\"{nameof(Amount)}\" REAL NOT NULL,"
+ + $"\"{nameof(TransactionType)}\" TEXT NOT NULL,"
+ + $"\"{nameof(FeeCurrency)}\" TEXT,"
+ + $"\"{nameof(FeeAmount)}\" REAL,"
+ + $"\"{nameof(Platform)}\" TEXT,"
+ + $"\"{nameof(Note)}\" TEXT,"
+ + $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT),"
+ $"FOREIGN KEY(\"{nameof(WalletID)}\") REFERENCES \"{walletTableName}\"(\"{nameof(Index)}\")"
+ $"); ";
}
@@ -165,15 +166,15 @@ namespace CryptoCalc
public Wallet() { SetDBStrings(); }
- public Wallet(DateTime dateTime, string platform, string name, string currency, float balance, int defaultWallet, string note)
+ public Wallet(DateTime dateTime, string platform, string name, string currency, string note)
{
SaveUnixTimeNow();
UnixTimeCreated = GetUnixTime(dateTime);
Platform = platform;
Name = name;
Currency = currency;
- Balance = balance;
- DefaultWallet = defaultWallet;
+ Balance = 0;
+ DefaultWallet = 0;
Note = note;
SetDBStrings();
@@ -202,15 +203,15 @@ namespace CryptoCalc
{
return
$"CREATE TABLE IF NOT EXISTS \"{DBTableName}\" ("
- + $"\"{nameof(Index)}\" INTEGER NOT NULL UNIQUE,"
- + $"\"{nameof(UnixTime)}\" INTEGER NOT NULL,"
- + $"\"{nameof(UnixTimeCreated)}\" INTEGER NOT NULL,"
- + $"\"{nameof(Platform)}\" TEXT,"
- + $"\"{nameof(Name)}\" TEXT,"
- + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
- + $"\"{nameof(Balance)}\" REAL NOT NULL,"
- + $"\"{nameof(DefaultWallet)}\" INTEGER,"
- + $"\"{nameof(Note)}\" TEXT,"
+ + $"\"{nameof(Index)}\" INTEGER NOT NULL UNIQUE,"
+ + $"\"{nameof(UnixTime)}\" INTEGER NOT NULL,"
+ + $"\"{nameof(UnixTimeCreated)}\" INTEGER NOT NULL,"
+ + $"\"{nameof(Platform)}\" TEXT,"
+ + $"\"{nameof(Name)}\" TEXT,"
+ + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
+ + $"\"{nameof(Balance)}\" REAL NOT NULL,"
+ + $"\"{nameof(DefaultWallet)}\" INTEGER,"
+ + $"\"{nameof(Note)}\" TEXT,"
+ $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT)"
+ $"); ";
}
diff --git a/MainWindow.xaml b/MainWindow.xaml
index 2e9d41b..29fd908 100644
--- a/MainWindow.xaml
+++ b/MainWindow.xaml
@@ -11,7 +11,6 @@
-
@@ -24,14 +23,28 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs
index 79d7720..c0e298b 100644
--- a/MainWindow.xaml.cs
+++ b/MainWindow.xaml.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
+using System.Windows.Controls;
namespace CryptoCalc
{
@@ -16,6 +17,9 @@ namespace CryptoCalc
private readonly Transaction genericT = new();
private readonly Wallet genericW = new();
+ private List walletList = new();
+ private Wallet selectedWallet = new();
+
public MainWindow()
{
InitializeComponent();
@@ -32,20 +36,42 @@ namespace CryptoCalc
{
transactionDB.SaveData(DummyTransaction());
}
- private void saveWalletButton_Click(object sender, RoutedEventArgs e)
+
+ private void saveRandomWalletButton_Click(object sender, RoutedEventArgs e)
{
walletDB.SaveData(DummyWallet());
}
private void saveButtonFromInput_Click(object sender, RoutedEventArgs e)
{
- transactionDB.SaveData(new Transaction(inputCurrency.Text, Convert.ToSingle(inputAmount.Text), inputType.Text));
+ transactionDB.SaveData
+ (
+ new Transaction(
+ selectedWallet.Index,
+ inputCurrency.Text,
+ Convert.ToSingle(inputAmount.Text),
+ inputType.Text
+ )
+ );
+ }
+
+ private void saveWalletButton_Click(object sender, RoutedEventArgs e)
+ {
+ walletDB.SaveData(
+ new Wallet(
+ (DateTime)inputWalletCreationDate.SelectedDate,
+ inputWalletPlatform.Text,
+ inputWalletName.Text,
+ inputWalletCurrency.Text,
+ inputWalletNote.Text
+ )
+ );
}
private void readButton_click(object sender, RoutedEventArgs e)
{
string query = $"select * from {genericT.DBTableName}";
- IEnumerable transactions = transactionDB.ReturnQuery(genericT, query);
+ IEnumerable transactions = transactionDB.ReturnQuery(genericT, query);
foreach (Transaction t in transactions)
{
Debug.WriteLine($"{DBClasses.GetLocalTimeFromUnixTime(t.UnixTime)} *** {t.Currency} - {t.Amount}");
@@ -62,10 +88,26 @@ namespace CryptoCalc
}
}
+ private void show_Wallets_Click(object sender, RoutedEventArgs e)
+ {
+ selectedWallet = null;
+ walletList.Clear();
+
+ string query = $"SELECT * from {genericW.DBTableName}";
+ IEnumerable wallets = walletDB.ReturnQuery(genericW, query);
+ listBox_Wallets.Items.Clear();
+
+ foreach (Wallet wallet in wallets)
+ {
+ walletList.Add(wallet);
+ listBox_Wallets.Items.Add($"{wallet.Name}-{wallet.Currency}-{wallet.Balance}");
+ }
+ }
+
private Transaction DummyTransaction()
{
Transaction t = new();
- t.WalletID = 1;
+ t.WalletID = selectedWallet.Index;
t.SaveUnixTimeNow();
t.Currency = "SOL";
t.Amount = Convert.ToSingle(30 * rand.NextDouble());
@@ -79,11 +121,11 @@ namespace CryptoCalc
{
Wallet w = new();
w.SaveUnixTimeNow();
- w.UnixTimeCreated = DBClasses.GetUnixTime(new DateTime(rand.Next(2011, DateTime.Now.Year), rand.Next(1,12), rand.Next(1, 28)));
+ w.UnixTimeCreated = DBClasses.GetUnixTime(new DateTime(rand.Next(2011, DateTime.Now.Year), rand.Next(1, 12), rand.Next(1, 28)));
w.Platform = "Ledger";
w.Name = "DefaultBTCWallet";
w.Currency = "BTC";
- w.Balance = Convert.ToSingle(30 * rand.NextDouble());
+ w.Balance = 0;//Convert.ToSingle(30 * rand.NextDouble());
w.DefaultWallet = 1;
w.Note = "Main BTC Wallet";
return w;
@@ -104,5 +146,27 @@ namespace CryptoCalc
{
inputCurrency.Text = inputCurrency.Text.ToUpper();
}
+
+
+ private void listBox_Wallets_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
+ {
+ if (listBox_Wallets.Items.Count > 0)
+ {
+ if (listBox_Wallets.SelectedIndex < walletList.Count)
+ {
+ selectedWallet = walletList[listBox_Wallets.SelectedIndex];
+
+ if (selectedWallet != null)
+ {
+ Debug.WriteLine($"{selectedWallet.Name} {selectedWallet.Balance}");
+ }
+ }
+ }
+ else
+ {
+ Debug.WriteLine("No wallet selected yet");
+ }
+ }
+
}
}