public async Task <IActionResult> WithdrawalIncentiveApplication([FromBody] WithdrawApplicationRequest request)
        {
            if (request.WithdrawalType == WithdrawalType.Employer)
            {
                await SendCommandAsync(
                    new EmployerWithdrawalCommand(
                        request.AccountLegalEntityId,
                        request.ULN,
                        request.ServiceRequest.TaskId,
                        request.ServiceRequest.DecisionReference,
                        request.ServiceRequest.TaskCreatedDate ?? DateTime.UtcNow));

                return(Accepted());
            }
            else if (request.WithdrawalType == WithdrawalType.Compliance)
            {
                await SendCommandAsync(
                    new ComplianceWithdrawalCommand(
                        request.AccountLegalEntityId,
                        request.ULN,
                        request.ServiceRequest.TaskId,
                        request.ServiceRequest.DecisionReference,
                        request.ServiceRequest.TaskCreatedDate ?? DateTime.UtcNow));

                return(Accepted());
            }
            else
            {
                return(BadRequest(new { Error = "Invalid WithdrawalType of {request.WithdrawalType} passed in" }));
            }
        }
        public async Task WhenTheApprenticeshipApplicationIsWithdrawnFromTheScheme()
        {
            _withdrawApplicationRequest = _fixture
                                          .Build <WithdrawApplicationRequest>()
                                          .With(r => r.WithdrawalType, WithdrawalType.Employer)
                                          .With(r => r.AccountLegalEntityId, _application.AccountLegalEntityId)
                                          .With(r => r.ULN, _apprenticeship.ULN)
                                          .Create();

            var url = $"withdrawals";


            if (_waitForMessage)
            {
                await _testContext.WaitFor(
                    async (cancellationToken) =>
                {
                    _response = await EmployerIncentiveApi.Post(url, _withdrawApplicationRequest, cancellationToken);
                },
                    (context) => HasExpectedEvents(context)
                    );
            }
            else
            {
                _response = await EmployerIncentiveApi.Post(url, _withdrawApplicationRequest);
            }
        }
コード例 #3
0
        public async Task <Unit> Handle(WithdrawApplicationAfterAcceptanceCommand request, CancellationToken cancellationToken)
        {
            var apiRequest = new WithdrawApplicationRequest(request.ApplicationId, request.AccountId, new WithdrawApplicationRequestData
            {
                ApplicationId   = request.ApplicationId,
                AccountId       = request.AccountId,
                UserId          = request.UserId,
                UserDisplayName = request.UserDisplayName
            });

            await _levyTransferMatchingService.WithdrawApplication(apiRequest, cancellationToken);

            return(Unit.Value);
        }
コード例 #4
0
        private async Task <HttpStatusCode> WithdrawFunding(SetApplicationAcceptanceCommand request, CancellationToken cancellationToken)
        {
            _logger.LogInformation($"Withdrawing Application {request.ApplicationId}. {request}");

            var apiRequestData = new WithdrawApplicationRequestData
            {
                UserId          = request.UserId,
                UserDisplayName = request.UserDisplayName,
                AccountId       = request.AccountId,
                ApplicationId   = request.ApplicationId
            };

            var apiRequest = new WithdrawApplicationRequest(request.ApplicationId, request.AccountId, apiRequestData);
            await _levyTransferMatchingService.WithdrawApplication(apiRequest, cancellationToken);

            return(HttpStatusCode.NoContent);
        }
 public async Task WithdrawApplication(WithdrawApplicationRequest request, CancellationToken cancellationToken = default)
 {
     await _levyTransferMatchingApiClient.PostWithResponseCode <WithdrawApplicationRequest>(request);
 }