public async Task <IActionResult> Get([FromQuery] GetCardListRequest request)
        {
            var query = new GetCardListQuery()
            {
                CardHolder = request.CardHolder,
                ChargeDate = request.ChargeDate,
                Number     = request.Number,
                Limit      = request.Limit,
                Offset     = request.Offset
            };

            var result = await queryDispatcher.ExecuteAsync(query);

            if (!result.Any())
            {
                return(NotFound(query));
            }

            var respose = result.Select(x => new GetCardListResponse()
            {
                Id                       = x.Id,
                Number                   = x.Number,
                CardHolder               = x.CardHolder,
                ExpirationDate           = x.ExpirationDate,
                HighestTransactionAmount = x.HighestTransactionAmount,
                HighestTransactionId     = x.HighestTransactionId
            });

            return(Ok(respose));
        }
        internal async Task <GetCardListResponse> GetCardList(GetCardListRequest request)
        {
            var response = await SendAsync <GetCardListResponse>(Url, new HttpFormUrlEncodedContent(request.ToDictionary()));

            if (string.IsNullOrEmpty(response.ErrorCode))
            {
                response.Success = true;
                response.Cards   = response.RawData.To <Card[]>();
            }
            return(response);
        }