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 TimeSpan Id { get; } [Key(2)] public string Name { get; set; } [Key(8)] public FastDictionary FinanceTransactions { get; } public User(TimeSpan id, string name, string address, string btcAddress, string ltcAddress, double btcAmount, double ltcAmount, FastDictionary financeTransactions) { Id = id; Name = name; 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, TimeSpan.FromTicks(DateTime.Now.Ticks), Id)); } internal bool HasTransaction(int transactionId) { return FinanceTransactions.Contains(transactionId); } internal FinanceTransaction GetTransactionById(int transactionId) { return FinanceTransactions[transactionId]; } } }