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