public async Task <GetBankingDataResult> Handle(GetBankingDataQuery request, CancellationToken cancellationToken)
        {
            var application = await _employerIncentivesService.GetApplication(request.AccountId, request.ApplicationId);

            if (application == null)
            {
                throw new ArgumentException("Requested application details cannot be found in SFA.DAS.EmployerIncentives Application Service");
            }

            var legalEntity = await _accountsService.GetLegalEntity(request.HashedAccountId, application.LegalEntityId);

            if (legalEntity == null)
            {
                throw new ArgumentException("Requested legal entity details cannot be found in SFA.DAS.EAS Employer Accounts Service");
            }

            var bankingData = new BankingData
            {
                VendorCode              = "00000000",
                LegalEntityId           = application.LegalEntityId,
                SubmittedByEmail        = application.SubmittedByEmail,
                SubmittedByName         = application.SubmittedByName,
                ApplicationValue        = application.Apprenticeships.Sum(x => x.TotalIncentiveAmount),
                NumberOfApprenticeships = application.Apprenticeships.Count(),
                SignedAgreements        = legalEntity.Agreements.Where(AgreementHasBeenSigned).Select(ToSignedAgreement)
            };

            return(new GetBankingDataResult
            {
                Data = bankingData
            });
        }
Exemplo n.º 2
0
        public async Task <GetApplicationResult> Handle(GetApplicationQuery request, CancellationToken cancellationToken)
        {
            var application = await _employerIncentivesService.GetApplication(request.AccountId, request.ApplicationId);

            var applicationToReturn = MapApplication(application);

            if (request.IncludeApprenticeships)
            {
                applicationToReturn.Apprenticeships = await MapApprenticeships(application.Apprenticeships);
            }

            return(new GetApplicationResult
            {
                Application = applicationToReturn
            });
        }