public int CheckCompleteTransaction(string sessionId, Transaction transaction, TransactionType type) { User user = GetUserInformation(sessionId); if (user == null) { return(transaction.quantity); } if (user == null || (user.availableDiginotes < transaction.quantity && type == TransactionType.SELL) || (user.balance < transaction.quantity * GetDiginoteValue() && type == TransactionType.BUY)) { return(-1); } List <Transaction> transactions = _db.GetUnfufilledTransactions(transaction.quantity, type); foreach (Transaction t in transactions) { if (t.seller == null) { t.seller = user.username; } else if (t.buyer == null) { t.buyer = user.username; } bool success = _db.CompleteTransaction(t, transaction.quantity, type); if (success) { Console.WriteLine("Success completing transaction"); _db.IncrementQuantity(); transaction.quantity -= t.quantity; if (transaction.quantity <= 0) { return(0); } } } return(transaction.quantity); }