Пример #1
0
        public ArrangementsBuilder()
        {
            _mediatorMock = new Mock <IMediator>();
            _createDonationCommandMock = new Mock <ICreateDonationCommand>();
            _loggerMock = new Mock <ILogger <DonationHandler> >();

            _mediatorMock.Setup(s => s.Send(It.IsAny <CalculateGiftAidRequest>(), It.IsAny <CancellationToken>()))
            .Returns((CalculateGiftAidRequest r, CancellationToken c) =>
            {
                _calculateGiftAidRequest = r;
                return(Task.FromResult(_calculateGiftAidResponse));
            });

            _mediatorMock.Setup(s => s.Send(It.IsAny <FileGiftAidDeclarationRequest>(), It.IsAny <CancellationToken>()))
            .Returns((FileGiftAidDeclarationRequest r, CancellationToken c) =>
            {
                _fileGiftAidDeclarationRequest = r;
                return(Task.FromResult(_fileGiftAidDeclarationResponse));
            });

            _createDonationCommandMock.Setup(s => s.Execute(It.IsAny <Data.Model.Donation>(), It.IsAny <CancellationToken>()))
            .Returns((Data.Model.Donation d, CancellationToken c) =>
            {
                _createdDonation = d;
                return(Task.FromResult(true));
            });
        }
Пример #2
0
        public async Task <FileGiftAidDeclarationResponse> Handle(FileGiftAidDeclarationRequest request, CancellationToken cancellationToken)
        {
            ValidateRequest(request);

            var donation = request.Donation;

            var giftAidDeclaration = new GiftAidDeclaration
            {
                Id               = Guid.NewGuid(),
                DonationId       = donation.Id,
                DonationAmount   = donation.DonationAmount,
                GiftAidAmount    = donation.GiftAidAmount,
                GiftAidReference = donation.GiftAidReference,
                DonorDetails     = donation.DonorDetails,
                Created          = DateTimeOffset.Now
            };

            _logger.LogDebug("Filing Gift-Aid declaration with reference {GiftAidReference} for donation with id {DonationId}.", donation.GiftAidReference, request.Donation.Id);

            await _createGiftAidDeclarationCommand.Execute(giftAidDeclaration, cancellationToken);

            return(new FileGiftAidDeclarationResponse
            {
                Declaration = giftAidDeclaration,
            });
        }
Пример #3
0
        private void ValidateRequest(FileGiftAidDeclarationRequest request)
        {
            _logger.LogDebug("Validating request");

            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            if (request.Donation == null)
            {
                throw new ArgumentNullException($"{nameof(request)}.{nameof(request.Donation)}");
            }
        }