protected void UpdateTransactions <TDbTransactionModel>(IDalContext context,
                                                                List <GetTransactionResponse> transactions, string category,
                                                                Func <IDalContext, List <TDbTransactionModel> > funcGetDbTransactions,
                                                                Action <HotWalletModel, TransactionElement> actionAddTransactionInDb)
            where TDbTransactionModel : TransactionModel
        {
            long time;
            var  dictionaryRpcTransactions = new Dictionary <string, List <TransactionElement> >();

            transactions.ForEach(transaction =>
            {
                var detailTransaction = transaction.Details.First(d =>
                                                                  string.Compare(d.Category, category, StringComparison.OrdinalIgnoreCase) == 0);
                time       = GetTransactionTime(transaction, category);
                var result = new TransactionElement(transaction.TxId, transaction.Confirmations, time,
                                                    detailTransaction.Account, detailTransaction.Address, Convert.ToSingle(detailTransaction.Amount));
                if (!dictionaryRpcTransactions.ContainsKey(detailTransaction.Address))
                {
                    dictionaryRpcTransactions[result.Address] = new List <TransactionElement>();
                }
                dictionaryRpcTransactions[result.Address].Add(result);
            });
            var updateDbTransactionsIds =
                UpdateDbTransactions(context, dictionaryRpcTransactions, funcGetDbTransactions);

            AddTransactionsInDb(context, dictionaryRpcTransactions, updateDbTransactionsIds, actionAddTransactionInDb);
        }
 protected void AddOutgoingTransactionInDb(HotWalletModel dbWallet, TransactionElement localTransaction)
 {
     dbWallet.OutgoingTransactions.Add(new OutgoingTransactionModel
     {
         TxId            = localTransaction.TxId,
         Account         = localTransaction.Account,
         Address         = localTransaction.Address,
         Amount          = localTransaction.Amount,
         Confirmations   = localTransaction.Confirmations,
         TimeTransaction = localTransaction.Time,
     });
 }