public async Task MapsPagingProperties()
        {
            // given
            var subject = new PaymentsClient(_clientConfiguration);

            var firstPageRequest = new GetPaymentsRequest
            {
                Limit = 1
            };

            // when
            var firstPageResult = await subject.GetPageAsync(firstPageRequest);

            var secondPageRequest = new GetPaymentsRequest
            {
                After = firstPageResult.Meta.Cursors.After,
                Limit = 2
            };

            var secondPageResult = await subject.GetPageAsync(secondPageRequest);

            // then
            Assert.That(firstPageResult.Items.Count(), Is.EqualTo(firstPageRequest.Limit));
            Assert.That(firstPageResult.Meta.Limit, Is.EqualTo(firstPageRequest.Limit));
            Assert.That(firstPageResult.Meta.Cursors.Before, Is.Null);
            Assert.That(firstPageResult.Meta.Cursors.After, Is.Not.Null);

            Assert.That(secondPageResult.Items.Count(), Is.EqualTo(secondPageRequest.Limit));
            Assert.That(secondPageResult.Meta.Limit, Is.EqualTo(secondPageRequest.Limit));
            Assert.That(secondPageResult.Meta.Cursors.Before, Is.Not.Null);
            Assert.That(secondPageResult.Meta.Cursors.After, Is.Not.Null);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Get(long sinumber, [FromQuery] string insz)
        {
            var certificates = await _thabcertificateService.SearchAsync(new ThabCertificateSearch { SiNumber = sinumber, Insz = insz });

            List <ThabPayment> payments = new List <ThabPayment>();

            foreach (var cert in certificates)
            {
                var request = new GetPaymentsRequest()
                {
                    SiNumber      = sinumber,
                    ReferenceDate = cert.ReferenceDate
                };
                var response = await _service.GetPaymentsAsync(request);

                if (response.BusinessMessages != null && response.BusinessMessages.Length > 0)
                {
                    return(BadRequest(response.BusinessMessages));
                }

                var mappedModels = _mapper.Map <IEnumerable <ThabPayment> >(response?.Value?.Payments, opt => opt.Items["Id"] = cert.CertificateId);
                payments.AddRange(mappedModels);
            }

            return(Ok(payments));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Get()
        {
            var request = new GetPaymentsRequest();

            var payments = await mediator.Send(request);

            return(Ok(payments));
        }
        public override Task <GetPaymentsResult> GetByAccounts(GetPaymentsRequest request, ServerCallContext context)
        {
            var payments = paymentsRepository.GetByAccounts(request.Ids)
                           .Select(p => mapper.Map <Payment>(p))
                           .ToArray();

            return(Task.FromResult(new GetPaymentsResult {
                Payments = { payments }
            }));
        }
Exemplo n.º 5
0
        public IEnumerable <GetPaymentsResponse> GetPayments([FromQuery] GetPaymentsRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return(QueryProcessor.Execute(
                       new GetPaymentsQuery(request.Month, request.Year, request.PaymentTypeId,
                                            request.Amount?.Exact, request.Amount?.Min, request.Amount?.Max)));
        }
        public override Task <GetPaymentsResult> Get(GetPaymentsRequest request, ServerCallContext context)
        {
            var payments = request.Ids.Select(id => paymentsRepository.Get(id))
                           .Where(payment => payment != null)
                           .Select(p => mapper.Map <Payment>(p))
                           .ToArray();

            return(Task.FromResult(new GetPaymentsResult {
                Payments = { payments }
            }));
        }
        public async Task <PaymentsAndLoans> GetPaymentsWithLoans(Metadata headers, string[] accountsIds)
        {
            var request = new GetPaymentsRequest {
                Ids = { accountsIds }
            };
            var response = await paymentsClient.GetByAccountsAsync(request, headers);

            return(new PaymentsAndLoans
            {
                Loans = response.Loans.ToArray(),
                Payments = response.Payments.ToArray()
            });
        }
        public Task <Result <GetPaymentsResponse> > Handle(GetPaymentsRequest request, CancellationToken cancellationToken)
        {
            var notDisabled = new NotDisabledSpecification();
            var payments    = _paymentRepository.LoadWhere(notDisabled);

            return(Result <GetPaymentsResponse>
                   .SuccessTask(new GetPaymentsResponse
            {
                Data = payments?.Select(x => new PaymentItem
                {
                    Id = x.Id,
                    Name = x.Name
                }).ToList().AsReadOnly() ?? new List <PaymentItem>().AsReadOnly()
            }));
        }
        public void GetPaymentsRequestIsNullThrows()
        {
            // given
            var subject = new PaymentsClient(_clientConfiguration);

            GetPaymentsRequest request = null;

            // when
            AsyncTestDelegate test = () => subject.GetPageAsync(request);

            // then
            var ex = Assert.ThrowsAsync <ArgumentNullException>(test);

            Assert.That(ex.ParamName, Is.EqualTo(nameof(request)));
        }
        public async Task CallsGetPaymentsEndpointUsingRequest()
        {
            // given
            var subject = new PaymentsClient(_clientConfiguration);

            var request = new GetPaymentsRequest
            {
                Before = "before test",
                After  = "after test",
                Limit  = 5
            };

            // when
            await subject.GetPageAsync(request);

            // then
            _httpTest
            .ShouldHaveCalled("https://api.gocardless.com/payments?before=before%20test&after=after%20test&limit=5")
            .WithVerb(HttpMethod.Get);
        }
Exemplo n.º 11
0
        private async Task <decimal> GetCurrentPaymentAmount(long siNumber, DateTime reference)
        {
            var request = new GetPaymentsRequest()
            {
                SiNumber = siNumber, ReferenceDate = reference
            };
            var response = await _thabService.GetPaymentsAsync(request);

            if (response.Value != null && response.Value.Payments != null && response.Value.Payments.Count() > 0)
            {
                return(response.Value.Payments.OrderByDescending(p => p.PeriodEnd).FirstOrDefault().Amount);
            }
            else if (response.BusinessMessages != null && response.BusinessMessages.Any())
            {
                var errors = response.BusinessMessages.Where(bm => bm.Type == MessageType.Error);
                if (errors.Any())
                {
                    throw new Exception(string.Join("; ", errors.Select(e => e.MessageString)));
                }
            }

            return(0);
        }
        public async Task PagesThroughPayments()
        {
            // given
            var subject = new PaymentsClient(_clientConfiguration);
            var firstId = (await subject.GetPageAsync()).Items.First().Id;

            var initialRequest = new GetPaymentsRequest
            {
                After = firstId,
                CreatedGreaterThan = new DateTimeOffset(DateTime.Now.AddDays(-1)),
                Limit = 1,
            };

            // when
            var result = await subject
                         .BuildPager()
                         .StartFrom(initialRequest)
                         .AndGetAllAfterAsync();

            // then
            Assert.That(result.Count, Is.GreaterThan(1));
            Assert.That(result[0].Id, Is.Not.Null.And.Not.EqualTo(result[1].Id));
            Assert.That(result[1].Id, Is.Not.Null.And.Not.EqualTo(result[0].Id));
        }
Exemplo n.º 13
0
 /// <remarks/>
 public void GetPaymentsAsync(GetPaymentsRequest GetPaymentsRequest, object userState) {
     if ((this.GetPaymentsOperationCompleted == null)) {
         this.GetPaymentsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetPaymentsOperationCompleted);
     }
     this.InvokeAsync("GetPayments", new object[] {
                 GetPaymentsRequest}, this.GetPaymentsOperationCompleted, userState);
 }
Exemplo n.º 14
0
 /// <remarks/>
 public void GetPaymentsAsync(GetPaymentsRequest GetPaymentsRequest) {
     this.GetPaymentsAsync(GetPaymentsRequest, null);
 }
Exemplo n.º 15
0
 /// <inheritdoc />
 public async Task <List <PaymentDto> > Handle(GetPaymentsRequest request, CancellationToken cancellationToken)
 {
     return(await paymentsRepository.GetAllPayments(cancellationToken));
 }
Exemplo n.º 16
0
        public override Task <GetPaymentsWithLoansResult> GetByAccounts(GetPaymentsRequest request, ServerCallContext context)
        {
            var payments = paymentsRepository.GetByAccounts(request.Ids);

            return(WithLoans(payments, context.RequestHeaders.SelectCustom()));
        }