Exemplo n.º 1
0
        public async Task <IActionResult> Get([FromQuery] PagedTransactionRequest request)
        {
            var response = _dataService.GetTransactionsAsync(request);
            var count    = _dataService.GetTotalTransactionCountAsync(request.IgnorePayments);
            var trxResp  = new TransactionsResponse()
            {
                Data = await response, Total = await count, Skip = request.Skip, Take = request.Take
            };

            return(Ok(trxResp));
        }
Exemplo n.º 2
0
        public async Task <IEnumerable <TransactionRecord> > GetTransactionsAsync(PagedTransactionRequest request)
        {
            using (var connection = new NpgsqlConnection(_connectionString))
            {
                await connection.OpenAsync();

                List <TransactionRecord> results = new List <TransactionRecord>();
                try
                {
                    using (var trx = await connection.BeginTransactionAsync())
                    {
                        using (var cmd = connection.CreateCommand())
                        {
                            if (request.IgnorePayments)
                            {
                                cmd.CommandText = SELECT_TRX_NO_PAYMENTS;
                            }
                            else
                            {
                                cmd.CommandText = SELECT_TRX_PAYMENTS;
                            }
                            cmd.AddParam("take", request.Take);
                            cmd.AddParam("skip_trx", request.Skip);
                            cmd.Transaction = trx;
                            using (var dr = await cmd.ExecuteReaderAsync())
                            {
                                while (await dr.ReadAsync())
                                {
                                    results.Add(new TransactionRecord()
                                    {
                                        TransactionDate = dr.GetDateTime(1),
                                        PostDate        = dr.GetDateTime(2),
                                        ReferenceId     = dr.GetString(3),
                                        Description     = dr.GetString(4),
                                        Amount          = dr.GetDecimal(5),
                                        AccountNumber   = dr.GetString(6),
                                        CardNumber      = dr.GetString(7),
                                        CardholderName  = dr.GetString(8),
                                        Mcc             = dr.GetString(9),
                                        MccDescription  = dr.GetString(10),
                                        MccGroup        = dr.GetString(11)
                                    });
                                }
                            }
                        }
                    }
                }
                finally
                {
                    await connection.CloseAsync();
                }
                return(results);
            }
        }