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); } }
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); }
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); }