public List <Transaction> SearchTransactionEntities(string account, int count, int skip = 0, bool includeWatchOnly = true) { var inputDac = new InputDac(); var outputDac = new OutputDac(); var items = new TransactionDac().SelectTransactions(account, count, skip, includeWatchOnly); var accounts = new AccountDac().SelectAll(); foreach (var item in items) { item.Inputs = inputDac.SelectByTransactionHash(item.Hash); item.Outputs = outputDac.SelectByTransactionHash(item.Hash); } if (skip == 0) { var txList = TransactionPool.Instance.GetAllTransactions(); bool containsUnconfirmedTx = false; foreach (var tx in txList) { var entity = this.ConvertTxMsgToEntity(tx); bool isSendTransaction = false; if (entity != null) { foreach (var input in entity.Inputs) { if (accounts.Where(a => a.Id == input.AccountId).Count() > 0) { items.Add(entity); isSendTransaction = true; containsUnconfirmedTx = true; break; } } if (!isSendTransaction) { foreach (var output in entity.Outputs) { if (accounts.Where(a => a.Id == output.ReceiverId).Count() > 0) { items.Add(entity); containsUnconfirmedTx = true; break; } } } } } if (containsUnconfirmedTx) { items = items.OrderByDescending(t => t.Timestamp).ToList(); } } //var result = new List<TransactionMsg>(); //foreach(var item in items) //{ // result.Add(convertTxEntityToMsg(item)); //} //return result; return(items); }