コード例 #1
0
        public void Setup()
        {
            _request = _fixture.Create <DebitApplicationRequest>();

            _mediator = new Mock <IMediator>();

            _controller = new FunctionsController(_mediator.Object, Mock.Of <Microsoft.Extensions.Logging.ILogger <FunctionsController> >());
        }
コード例 #2
0
        public void Setup()
        {
            _debitApplicationCommand = _fixture.Create <DebitApplicationCommand>();
            _getApplicationResponse  = _fixture.Create <GetApplicationResponse>();
            _coursesApiResponse      = _fixture.Create <GetStandardsListItem>();

            var applicationApiResponse = new ApiResponse <DebitApplicationRequest>(new DebitApplicationRequest(_debitApplicationCommand.ApplicationId, new DebitApplicationRequest.DebitApplicationRequestData()), HttpStatusCode.OK, string.Empty);

            _levyTransferMatchingService = new Mock <ILevyTransferMatchingService>();
            _coursesApiClient            = new Mock <ICoursesApiClient <CoursesApiConfiguration> >();

            _levyTransferMatchingService.Setup(x => x.GetApplication(It.Is <GetApplicationRequest>(y => y.GetUrl.Contains(_debitApplicationCommand.ApplicationId.ToString()))))
            .ReturnsAsync(_getApplicationResponse);

            _levyTransferMatchingService.Setup(x => x.DebitApplication(It.IsAny <DebitApplicationRequest>()))
            .Callback <DebitApplicationRequest>(r => _debitApplicationRequest = r)
            .ReturnsAsync(applicationApiResponse);

            _coursesApiClient.Setup(x => x.Get <GetStandardsListItem>(It.Is <GetStandardDetailsByIdRequest>(y => y.GetUrl.Contains(_getApplicationResponse.StandardId))))
            .ReturnsAsync(_coursesApiResponse);

            _handler = new DebitApplicationCommandHandler(_levyTransferMatchingService.Object, _coursesApiClient.Object);
        }
コード例 #3
0
        public async Task <IActionResult> DebitApplication(DebitApplicationRequest request)
        {
            try
            {
                var result = await _mediator.Send(new DebitApplicationCommand
                {
                    ApplicationId       = request.ApplicationId,
                    NumberOfApprentices = request.NumberOfApprentices,
                    Amount = request.Amount
                });

                if (!result.StatusCode.IsSuccess())
                {
                    _logger.LogError($"Error attempting to Debit Application {result.ErrorContent}");
                }

                return(new StatusCodeResult((int)result.StatusCode));
            }
            catch (Exception e)
            {
                _logger.LogError(e, $"Error attempting to Debit Application");
                return(new StatusCodeResult((int)HttpStatusCode.InternalServerError));
            }
        }
 public async Task <ApiResponse <DebitApplicationRequest> > DebitApplication(DebitApplicationRequest request)
 {
     return(await _levyTransferMatchingApiClient.PostWithResponseCode <DebitApplicationRequest>(request));
 }