ulong test

This commit is contained in:
Stedd 2022-02-13 13:32:22 +01:00
parent 39aa1eff9b
commit 6469960b9c
4 changed files with 43 additions and 22 deletions

View File

@ -4,6 +4,15 @@ using System.Text.RegularExpressions;
namespace CryptoCalc namespace CryptoCalc
{ {
public enum TransactionTypes
{
Buy,
Sell,
Transfer,
Mining
}
public interface IDBClasses public interface IDBClasses
{ {
static string DBName { get; } static string DBName { get; }
@ -21,8 +30,8 @@ namespace CryptoCalc
public virtual string DBVariables { get; set; } public virtual string DBVariables { get; set; }
public string DBSaveDataString => $"({Regex.Replace(DBVariables, "@", "")}) values ({DBVariables})"; public string DBSaveDataString => $"({Regex.Replace(DBVariables, "@", "")}) values ({DBVariables})";
public int Index { get; set; } public long Index { get; set; }
public long UnixTime { get; set; } public ulong UnixTime { get; set; }
#endregion #endregion
@ -31,20 +40,20 @@ namespace CryptoCalc
public void SaveUnixTimeNow() public void SaveUnixTimeNow()
{ {
UnixTime = (long)DateTime.UtcNow.Subtract(DateTime.UnixEpoch).TotalSeconds; UnixTime = (ulong)DateTime.UtcNow.Subtract(DateTime.UnixEpoch).TotalSeconds;
} }
public static long GetUnixTime(DateTime dateTime) public static ulong GetUnixTime(DateTime dateTime)
{ {
return (long)dateTime.Subtract(DateTime.UnixEpoch).TotalSeconds; return (ulong)dateTime.Subtract(DateTime.UnixEpoch).TotalSeconds;
} }
public static DateTime GetUTCTimeFromUnixTime(long unix) public static DateTime GetUTCTimeFromUnixTime(ulong unix)
{ {
return DateTime.UnixEpoch.AddSeconds(unix).ToUniversalTime(); return DateTime.UnixEpoch.AddSeconds(unix).ToUniversalTime();
} }
public static DateTime GetLocalTimeFromUnixTime(long unix) public static DateTime GetLocalTimeFromUnixTime(ulong unix)
{ {
return DateTime.UnixEpoch.AddSeconds(unix).ToLocalTime(); return DateTime.UnixEpoch.AddSeconds(unix).ToLocalTime();
} }
@ -60,12 +69,12 @@ namespace CryptoCalc
public override string DBVariables { get => base.DBVariables; set => base.DBVariables = value; } public override string DBVariables { get => base.DBVariables; set => base.DBVariables = value; }
public override string DBTableName => "Transactions"; public override string DBTableName => "Transactions";
public int WalletID { get; set; } public long WalletID { get; set; }
public string Currency { get; set; } public string Currency { get; set; }
public decimal Amount { get; set; } public ulong Amount { get; set; }
public string TransactionType { get; set; } public string TransactionType { get; set; }
public string FeeCurrency { get; set; } public string FeeCurrency { get; set; }
public decimal FeeAmount { get; set; } public ulong FeeAmount { get; set; }
public string Platform { get; set; } public string Platform { get; set; }
public string Note { get; set; } public string Note { get; set; }
@ -75,12 +84,12 @@ namespace CryptoCalc
public Transaction() { SetDBStrings(); } public Transaction() { SetDBStrings(); }
public Transaction(int walletID, string currency, decimal amount, string type) public Transaction(long walletID, string currency, decimal amount, string type)
{ {
SaveUnixTimeNow(); SaveUnixTimeNow();
WalletID = walletID; WalletID = walletID;
Currency = currency; Currency = currency;
Amount = amount; Amount = Util.ConvToLong(amount);
TransactionType = type; TransactionType = type;
Platform = ""; Platform = "";
@ -93,10 +102,10 @@ namespace CryptoCalc
{ {
SaveUnixTimeNow(); SaveUnixTimeNow();
Currency = currency; Currency = currency;
Amount = amount; Amount = Util.ConvToLong(amount);
TransactionType = type; TransactionType = type;
FeeCurrency = feeCurrency; FeeCurrency = feeCurrency;
FeeAmount = feeAmount; FeeAmount = Util.ConvToLong(feeAmount);
Platform = ""; Platform = "";
Note = ""; Note = "";
@ -131,10 +140,10 @@ namespace CryptoCalc
+ $"\"{nameof(WalletID)}\" INTEGER NOT NULL," + $"\"{nameof(WalletID)}\" INTEGER NOT NULL,"
+ $"\"{nameof(UnixTime)}\" INTEGER NOT NULL," + $"\"{nameof(UnixTime)}\" INTEGER NOT NULL,"
+ $"\"{nameof(Currency)}\" TEXT NOT NULL," + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
+ $"\"{nameof(Amount)}\" REAL NOT NULL," + $"\"{nameof(Amount)}\" INTEGER NOT NULL,"
+ $"\"{nameof(TransactionType)}\" TEXT NOT NULL," + $"\"{nameof(TransactionType)}\" TEXT NOT NULL,"
+ $"\"{nameof(FeeCurrency)}\" TEXT," + $"\"{nameof(FeeCurrency)}\" TEXT,"
+ $"\"{nameof(FeeAmount)}\" REAL," + $"\"{nameof(FeeAmount)}\" INTEGER,"
+ $"\"{nameof(Platform)}\" TEXT," + $"\"{nameof(Platform)}\" TEXT,"
+ $"\"{nameof(Note)}\" TEXT," + $"\"{nameof(Note)}\" TEXT,"
+ $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT)," + $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT),"
@ -152,11 +161,11 @@ namespace CryptoCalc
public override string DBVariables { get => base.DBVariables; set => base.DBVariables = value; } public override string DBVariables { get => base.DBVariables; set => base.DBVariables = value; }
public override string DBTableName => "Wallets"; public override string DBTableName => "Wallets";
public long UnixTimeCreated { get; set; } public ulong UnixTimeCreated { get; set; }
public string Platform { get; set; } public string Platform { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Currency { get; set; } public string Currency { get; set; }
public decimal Balance { get; set; } public ulong Balance { get; set; }
public int DefaultWallet { get; set; } public int DefaultWallet { get; set; }
public string Note { get; set; } public string Note { get; set; }
@ -173,7 +182,7 @@ namespace CryptoCalc
Platform = platform; Platform = platform;
Name = name; Name = name;
Currency = currency; Currency = currency;
Balance = 0M; Balance = Util.ConvToLong(0M);
DefaultWallet = 0; DefaultWallet = 0;
Note = note; Note = note;
@ -209,7 +218,7 @@ namespace CryptoCalc
+ $"\"{nameof(Platform)}\" TEXT," + $"\"{nameof(Platform)}\" TEXT,"
+ $"\"{nameof(Name)}\" TEXT," + $"\"{nameof(Name)}\" TEXT,"
+ $"\"{nameof(Currency)}\" TEXT NOT NULL," + $"\"{nameof(Currency)}\" TEXT NOT NULL,"
+ $"\"{nameof(Balance)}\" REAL NOT NULL," + $"\"{nameof(Balance)}\" INTEGER NOT NULL,"
+ $"\"{nameof(DefaultWallet)}\" INTEGER," + $"\"{nameof(DefaultWallet)}\" INTEGER,"
+ $"\"{nameof(Note)}\" TEXT," + $"\"{nameof(Note)}\" TEXT,"
+ $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT)" + $"PRIMARY KEY(\"{nameof(Index)}\" AUTOINCREMENT)"

View File

@ -23,6 +23,7 @@
<ListBox x:Name="transactionsFoundListBox" Margin="27,66,331,10"/> <ListBox x:Name="transactionsFoundListBox" Margin="27,66,331,10"/>
<TextBox x:Name="currencyText" HorizontalAlignment="Left" Margin="89,21,0,0" Text="SOL" TextWrapping="Wrap" VerticalAlignment="Top" Width="75" Height="22" LostFocus="currencyText_LostFocus"/> <TextBox x:Name="currencyText" HorizontalAlignment="Left" Margin="89,21,0,0" Text="SOL" TextWrapping="Wrap" VerticalAlignment="Top" Width="75" Height="22" LostFocus="currencyText_LostFocus"/>
<Button x:Name="searchButton" Content="Search" HorizontalAlignment="Left" Margin="169,20,0,0" VerticalAlignment="Top" Click="searchButton_Click" Height="25" Width="55"/> <Button x:Name="searchButton" Content="Search" HorizontalAlignment="Left" Margin="169,20,0,0" VerticalAlignment="Top" Click="searchButton_Click" Height="25" Width="55"/>
<DatePicker x:Name="insertTransactionDatePicker" HorizontalAlignment="Right" Margin="0,0,60,157" VerticalAlignment="Bottom" Width="120" FirstDayOfWeek="Monday" SelectedDateFormat="Short"/>
</Grid> </Grid>
</TabItem> </TabItem>
<TabItem Header="Overview"> <TabItem Header="Overview">

View File

@ -110,7 +110,7 @@ namespace CryptoCalc
t.WalletID = selectedWallet.Index; t.WalletID = selectedWallet.Index;
t.SaveUnixTimeNow(); t.SaveUnixTimeNow();
t.Currency = "SOL"; t.Currency = "SOL";
t.Amount = Convert.ToDecimal(30 * rand.NextDouble()); t.Amount = Util.ConvToLong(30m * (decimal)rand.NextDouble());
t.TransactionType = "BUY"; t.TransactionType = "BUY";
t.Platform = "Firi"; t.Platform = "Firi";
t.Note = "Test"; t.Note = "Test";
@ -125,7 +125,7 @@ namespace CryptoCalc
w.Platform = "Ledger"; w.Platform = "Ledger";
w.Name = "DefaultBTCWallet"; w.Name = "DefaultBTCWallet";
w.Currency = "BTC"; w.Currency = "BTC";
w.Balance = 0;//Convert.ToSingle(30 * rand.NextDouble()); w.Balance = Util.ConvToLong(0);//Convert.ToSingle(30 * rand.NextDouble());
w.DefaultWallet = 1; w.DefaultWallet = 1;
w.Note = "Main BTC Wallet"; w.Note = "Main BTC Wallet";
return w; return w;

11
Util.cs
View File

@ -8,5 +8,16 @@ namespace CryptoCalc
{ {
return ConfigurationManager.ConnectionStrings[name].ConnectionString; return ConfigurationManager.ConnectionStrings[name].ConnectionString;
} }
public static ulong ConvToLong(decimal value)
{
//return decimal.ToInt64(value * 1e18M);
return decimal.ToUInt64(value * 1e18M);
}
public static decimal ConveToDecimal (ulong value)
{
return value * 1e-18M;
}
} }
} }