Esempio n. 1
0
        public async Task <TransactionsResponse> GetAccountTransactions(ClaimsPrincipal principal,
                                                                        string accountId,
                                                                        TransactionQueryRequestViewModel queryRequest = null)
        {
            var currentUserId = principal.FindFirst(ClaimTypes.NameIdentifier).Value;
            var user          = _dbContext.Users.FirstOrDefault(x => x.Id == currentUserId);

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

            return(await HttpPost <TransactionsResponse>(
                       $"/v1/accounts/{accountId}/transactions/query?includeDeleted={queryRequest?.IncludeDeleted.ToString() ?? "false"}",
                       new
            {
                Interval = new Interval(SystemClock.Instance.GetCurrentInstant().Minus(Duration.FromDays(900)),
                                        SystemClock.Instance.GetCurrentInstant()),
                queryRequest?.PagingToken,
                PageSize = 20,
                Patterns = queryRequest?.Filters.Select(MapQueryPartToAiiaQueryPart).ToList(),
                queryRequest?.AmountValueBetween,
                queryRequest?.BalanceValueBetween
            },
                       user.AiiaTokenType,
                       user.AiiaAccessToken,
                       principal));
        }
Esempio n. 2
0
        public async Task <IActionResult> FetchTransactions(string accountId,
                                                            [FromBody] TransactionQueryRequestViewModel body)
        {
            var transactions = await _aiiaService.GetAccountTransactions(User, accountId, body);

            return(Ok(new TransactionsViewModel(transactions.Transactions,
                                                transactions.PagingToken,
                                                body.IncludeDeleted)));
        }