Esempio n. 1
0
 public IEnumerable <Transaction> GetTransactions(DateTime dateFrom, DateTime dateTo, ETransactionType transactionType, Guid accountId)
 {
     return(_context.Transactions
            .AsNoTracking()
            .Where(TransactionQueries.GetTransactions(dateFrom, dateTo, transactionType, accountId))
            .OrderBy(x => x.CreateDate));
 }
Esempio n. 2
0
        public List <AppViewModel> GetAllApps()
        {
            var appQuery = new AppQueries(_context);
            var txQuery  = new TransactionQueries(_context);

            List <AppViewModel> appsList = new List <AppViewModel>();

            var apps = appQuery.QueryApps();

            foreach (var appInfo in apps)
            {
                var txCount = txQuery.QueryTotalChainTransactionCount(appInfo.Id);
                var vm      = AppViewModel.FromApp(appInfo);
                vm.TxCount = txCount;

                appsList.Add(vm);
            }

            appsList = appsList.OrderByDescending(x => x.TxCount).ToList();

            for (int i = 0; i < appsList.Count; i++)
            {
                appsList[i].Rank = i + 1;
            }

            return(appsList);
        }
        public List <TransactionViewModel> GetTransactions(int currentPage, int pageSize = AppSettings.PageSize, string chain = null)
        {
            var txQuery = new TransactionQueries(_context);

            var query = txQuery.QueryTransactions(chain).Skip((currentPage - 1) * pageSize).Take(pageSize);

            return(query.AsEnumerable().Select(TransactionViewModel.FromTransaction).ToList());
        }
Esempio n. 4
0
        public List <TransactionViewModel> GetTransfers(string symbol, int amount = AppSettings.PageSize)
        {
            var txsQuery  = new TransactionQueries(_context);
            var transfers = txsQuery.QueryLastTokenTransactions(symbol, amount);

            var temp = transfers.Select(TransactionViewModel.FromTransaction).ToList();

            return(new List <TransactionViewModel>(temp.Where(p => p.AmountTransfer > 0).Take(amount)));
        }
Esempio n. 5
0
        public void WhenAAccountIdAndAPeriodAndATypeOfTansactionShouldReturnCorrectTransactions()
        {
            //When
            var transactions = _transactions.AsQueryable().Where(
                TransactionQueries.GetTransactions(DateTime.Now.Date, DateTime.Now.AddDays(1).Date, ETransactionType.Credit, _account1.Id));

            //Then
            Assert.Equal(1, transactions.Count());
        }
Esempio n. 6
0
        public string SearchCommand(string input)
        {
            try
            {
                if (Address.IsValidAddress(input)) //maybe is address
                {
                    return($"address/{input}");
                }

                //token
                var token = new TokenQueries(_context).QueryToken(input.ToUpperInvariant());
                if (token != null)// token
                {
                    return($"token/{token.Symbol}");
                }

                //app
                var app = new AppQueries(_context).QueryApp(input);
                if (app != null)
                {
                    return($"app/{app.Id}");
                }

                //chain
                var chain = new ChainQueries(_context).QueryChain(input);
                if (chain != null)
                {
                    return($"chain/{chain.Address}");
                }

                //hash
                if (Hash.TryParse(input, out var hash))
                {
                    var tx = new TransactionQueries(_context).QueryTransaction(input);
                    if (tx != null)
                    {
                        return($"tx/{tx.Hash}");
                    }

                    var block = new BlockQueries(_context).QueryBlock(input);
                    if (block != null)
                    {
                        return($"block/{block.Hash}");
                    }
                }

                return(null);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return("/home");
            }
        }
        public TransactionViewModel GetTransaction(string txHash)
        {
            var txQuery     = new TransactionQueries(_context);
            var transaction = txQuery.QueryTransaction(txHash);

            if (transaction == null)
            {
                return(null);
            }

            return(TransactionViewModel.FromTransaction(transaction));
        }
Esempio n. 8
0
        public TransactionTests()
        {
            LoggedInAccountId = 1;
            var testTransactionOptions = new DbContextOptionsBuilder <TransactionDbContext>()
                                         .UseInMemoryDatabase("TestTransactionsDatabase")
                                         .Options;

            _testTransactionDbContext  = new TransactionDbContext(testTransactionOptions);
            _testTransactionQueries    = new TransactionQueries(_testTransactionDbContext, LoggedInAccountId);
            _testDepositService        = new DepositService(_testTransactionQueries);
            _testWithdrawalService     = new WithdrawalService(_testTransactionQueries);
            _testAccountHistoryService = new AccountHistoryService(_testTransactionQueries);
        }
Esempio n. 9
0
        public HomeViewModel GetLastestInfo()
        {
            var blockQuery = new BlockQueries(_context);
            var txsQuery   = new TransactionQueries(_context);
            var chainQuery = new ChainQueries(_context);

            var blocks       = blockQuery.QueryLastBlocks(14);
            var transactions = txsQuery.QueryLastTransactions(15);
            var blocksVm     = blocks.Select(BlockHomeViewModel.FromBlock).ToList();

            var txsVm = transactions.Select(TransactionHomeViewModel.FromTransaction).ToList();

            // tx history chart calculation
            var repTxs = txsQuery.QueryLastTransactions(1000, null);

            var chart = new Dictionary <string, uint>();

            foreach (var transaction in repTxs)
            {
                var      block     = transaction.Block;
                DateTime chartTime = new Timestamp(block.Timestamp);
                var      chartKey  = $"{chartTime.Day}/{chartTime.Month}";

                if (chart.ContainsKey(chartKey))
                {
                    chart[chartKey] += 200;
                }
                else
                {
                    chart[chartKey] = 1;
                }
            }

            int  totalChains       = chainQuery.QueryChainCount;
            uint height            = chainQuery.QueryChain("main").Height;
            int  totalTransactions = txsQuery.QueryTotalChainTransactionCount();

            var vm = new HomeViewModel
            {
                Blocks            = blocksVm,
                Transactions      = txsVm,
                Chart             = chart,
                TotalTransactions = totalTransactions,
                TotalChains       = totalChains,
                BlockHeight       = height,
            };

            return(vm);
        }
Esempio n. 10
0
        public void Test1()
        {
            var result = _transactions.AsQueryable().Where(TransactionQueries.GetActiveTransactions());

            Assert.AreEqual(result.Count(), 1);
        }
Esempio n. 11
0
 public DepositService(TransactionQueries transactionQueries)
 {
     _transactionQueries = transactionQueries;
 }
        public int GetTransactionsCount(string chain = null)
        {
            var txQuery = new TransactionQueries(_context);

            return(txQuery.QueryTotalChainTransactionCount(chain));
        }
Esempio n. 13
0
        public static void LoggedInMenuOptions(int accountId, ref bool loggedIn)
        {
            //instanticate dependencies for depositService, withdrawalService and transactionService
            var loggedinAccountId  = accountId;
            var transactionOptions = new DbContextOptionsBuilder <TransactionDbContext>()
                                     .UseInMemoryDatabase("BankingAppDatabase")
                                     .Options;
            var transactionDbContext = new TransactionDbContext(transactionOptions);
            var transactionQueries   = new TransactionQueries(transactionDbContext, loggedinAccountId);

            var accountHistoryService = new AccountHistoryService(transactionQueries);

            while (loggedIn)
            {
                Console.WriteLine("Please choose from the following menu options:\n");
                Console.WriteLine("a) Make a deposit");
                Console.WriteLine("b) Make a withdrawal");
                Console.WriteLine("c) Check your balance");
                Console.WriteLine("d) See your transaction history");
                Console.WriteLine("e) Log out");
                Console.WriteLine("f) Quit");

                var menuChoice = Console.ReadLine();

                switch (menuChoice)
                {
                case "a":
                    var depositService = new DepositService(transactionQueries);
                    var depositAmount  = ValidateTransactionEntry("Deposit");
                    var depositMessage = depositService.SubmitTransaction(depositAmount);
                    Console.WriteLine(depositMessage);
                    break;

                case "b":
                    var withdrawalService = new WithdrawalService(transactionQueries);
                    var withdrawalAmount  = ValidateTransactionEntry("Withdrawal");
                    var withdrawalMessage = withdrawalService.SubmitTransaction(withdrawalAmount);
                    Console.WriteLine(withdrawalMessage);
                    break;

                case "c":
                    Console.WriteLine($"Your account balance is: ${accountHistoryService.GetAccountBalance()}");
                    break;

                case "d":
                    var transactionHistory = accountHistoryService.GetransactionHistory();

                    Console.WriteLine("Transaction History:\n");
                    foreach (var transaction in transactionHistory)
                    {
                        Console.WriteLine($"${transaction.Amount}");
                        Console.WriteLine(transaction.Timestamp);
                        Console.WriteLine("--------------------------------------------------");
                    }
                    break;

                case "e":
                    loggedIn = false;
                    break;

                case "f":
                    Quit();
                    break;

                default:
                    Console.WriteLine("Invalid selection, please choose again.\n");
                    break;
                }
            }
        }
Esempio n. 14
0
 public WithdrawalService(TransactionQueries transactionQueries)
 {
     _transactionQueries = transactionQueries;
 }
Esempio n. 15
0
 public Task <IEnumerable <TransactionOutput> > GetTransactionOutput(CancellationToken cancellationToken, string transactionId)
 {
     return(TransactionQueries.GetTransactionOutputs(this.GetConnection(), cancellationToken, transactionId));
 }
 public CurrentBalanceRetriever(TransactionQueries transactionQueries)
 {
     _transactionQueries = transactionQueries;
 }
 public AddCreditTransactionCommandHandler(AccountHistoryContext context,
                                           TransactionQueries transactionQueries)
 {
     _context            = context;
     _transactionQueries = transactionQueries;
 }
Esempio n. 18
0
 public AccountHistoryService(TransactionQueries transactionQueries)
 {
     _transactionQueries = transactionQueries;
 }
Esempio n. 19
0
 public TransactionsRetriever(TransactionQueries transactionQueries)
 {
     _transactionQueries = transactionQueries;
 }