public Task <IResult> ExecuteAsync(SubmitSelectiveInvoiceDiscountApplicationCommand command)
 {
     try
     {
         var result = selectInvoiceService.SubmitApplicationFor(
             command.CompanyNumber.ToString(),
             command.InvoiceAmount,
             command.AdvancePercentage);
         return(Task.FromResult(SubmitApplicationResult.Success(result) as IResult));
     }
     catch (Exception e)
     {
         // exceptions could be thrown for network related errors or infrastructure exceptions
         return(Task.FromResult(SubmitApplicationResult.Failure(exception: e) as IResult));
     }
 }
        public Task <IResult> ExecuteAsync(SubmitConfidentialInvoiceDiscountCommand command)
        {
            var result = this.confidentialInvoiceService.SubmitApplicationFor(
                new CompanyDataRequest
            {
                CompanyFounded = command.CompanyData.Founded,
                CompanyNumber  = command.CompanyData.Number,
                CompanyName    = command.CompanyData.Name,
                DirectorName   = command.CompanyData.DirectorName
            },
                command.TotalLedgerNetworth,
                command.AdvancePercentage,
                command.VatRate);

            return((result.Success)
                ? result.ApplicationId.HasValue
                    ? Task.FromResult(SubmitApplicationResult.Success(result.ApplicationId.Value) as IResult)
                    : Task.FromResult(SubmitApplicationResult.Failure(message: "Web request completed, but result returned null") as IResult)
                : Task.FromResult(SubmitApplicationResult.Failure(message: $"Web request failed\n{string.Join("\n", result.Errors ?? new List<string>())}") as IResult));
        }
コード例 #3
0
        public Task <IResult> ExecuteAsync(SubmitBusinessLoansCommand command)
        {
            var result = this.businessLoansService.SubmitApplicationFor(
                new CompanyDataRequest
            {
                CompanyFounded = command.CompanyData.Founded,
                CompanyNumber  = command.CompanyData.Number,
                CompanyName    = command.CompanyData.Name,
                DirectorName   = command.CompanyData.DirectorName
            }, new LoansRequest
            {
                InterestRatePerAnnum = command.InterestRatePerAnnum,
                LoanAmount           = command.LoanAmount
            });

            return((result.Success)
                ? result.ApplicationId.HasValue
                    ? Task.FromResult(SubmitApplicationResult.Success(result.ApplicationId.Value) as IResult)
                    : Task.FromResult(SubmitApplicationResult.Failure(message: "") as IResult)
                : Task.FromResult(SubmitApplicationResult.Failure(message: $"Request to businessLoansService failed\n{string.Join("\n", result.Errors ?? new List<string>())}") as IResult));
        }
        public async Task SelectiveInvoiceDiscountService_ExecuteAsync_WhenCalledWithSelectInvoiceDiscount_ShouldReturnFailedResult(
            decimal invoiceAmount,
            decimal advantagePercentage,
            int companyNumber,
            Exception exception)
        {
            var selectInvoiceServiceMock = new Mock <ISelectInvoiceService>();

            selectInvoiceServiceMock
            .Setup(
                m => m.SubmitApplicationFor(
                    It.IsAny <string>(),
                    It.IsAny <decimal>(),
                    It.IsAny <decimal>()))
            .Throws(exception);

            var applicationResult = await new SelectiveInvoiceDiscountService(selectInvoiceServiceMock.Object)
                                    .ExecuteAsync(new SubmitSelectiveInvoiceDiscountApplicationCommand(
                                                      invoiceAmount,
                                                      advantagePercentage,
                                                      companyNumber));

            applicationResult.Should().BeEquivalentTo(SubmitApplicationResult.Failure(exception: exception));
        }