Ejemplo n.º 1
0
        public async Task <IEnumerable <PaymentTransactionDto> > GetTransactions(GetPaymentTransactionsQuery query)
        {
            var result = _dbContext.PaymentTranstactions
                         .AsNoTracking();

            result = query.Currency is null ? result : result.Where(p => p.Currency == query.Currency);
            result = query.From is null ? result : result.Where(p => p.TransactionDate > query.From);
            result = query.To is null ? result : result.Where(p => p.TransactionDate < query.To);
            result = query.Status is null ? result : result.Where(p => p.Status == query.Status);

            var res = (await result.Select(x => new
            {
                x.Id,
                x.Amount,
                x.Currency,
                x.Status
            })
                       .ToListAsync())
                      .Select(p => new PaymentTransactionDto
            {
                Id      = p.Id,
                Status  = p.Status,
                Payment = $"{p.Amount} {p.Currency}"
            });

            return(res);
        }
Ejemplo n.º 2
0
        public async Task QueryDataProperlyByParams(string url, string from, string to, string currency, PaymentTransactionStatus?status)
        {
            GetPaymentTransactionsQuery query = default;
            await _queriesMock.GetTransactions(Arg.Do <GetPaymentTransactionsQuery>(q => query = q));

            var result = await _client.GetAsync(url);

            query.Should().BeEquivalentTo(new GetPaymentTransactionsQuery
            {
                Currency = currency,
                From     = from is null? (DateTime?)null : DateTime.Parse(from),
                To       = to is null ? (DateTime?)null : DateTime.Parse(to),
                Status   = status
            });
Ejemplo n.º 3
0
        public async Task <ActionResult <IEnumerable <PaymentTransactionDto> > > Get([FromQuery] GetPaymentTransactionsQuery query)
        {
            var result = await _transtactionQueries.GetTransactions(query);

            return(Ok(result));
        }