using System; using System.Collections.Generic; using System.Transactions; using BlueWest.Collections; using MapTo; using MessagePack; using Newtonsoft.Json; using BlueWest.Collections; namespace BlueWest.Data { [MessagePackObject] [UseUpdate] [MapFrom(typeof(UserUpdateDto))] public partial class User { [Key(1)] public int Id { get; } [Key(2)] public string Name { get; set; } [Key(3)] public string Address { get; set; } [Key(4)] public string BTCAddress { get; set; } [Key(5)] public string LTCAddress { get; set; } [Key(6)] public double BTCAmount { get; set; } [Key(7)] public double LTCAmount { get; set; } [Key(8)] public FastDictionary FinanceTransactions { get; } public User(int id, string name, string address, string btcAddress, string ltcAddress, double btcAmount, double ltcAmount, FastDictionary financeTransactions) { Id = id; Name = name; Address = address; BTCAddress = btcAddress; LTCAddress = ltcAddress; BTCAmount = btcAmount; LTCAmount = ltcAmount; FinanceTransactions = financeTransactions; } public void AddTransaction(FinanceTransaction financeTransaction) { FinanceTransactions.Add(FinanceTransactions.Count + 1, financeTransaction); } public void AddTransaction(FinanceTransactionInsertDto financeTransaction) { FinanceTransactions.Add(FinanceTransactions.Count + 1, new FinanceTransaction(financeTransaction, FinanceTransactions.Count + 1)); } internal bool HasTransaction(int transactionId) { return FinanceTransactions.Contains(transactionId); } internal FinanceTransaction GetTransactionById(int transactionId) { return FinanceTransactions[transactionId]; } } }