public static async Task CanCreateAndReadDisbursement(this IActionstepService actionstepService, int actionId, TokenSetQuery tokenSetQuery) { if (actionstepService is null) { throw new ArgumentNullException(nameof(actionstepService)); } if (tokenSetQuery is null) { throw new ArgumentNullException(nameof(tokenSetQuery)); } var newDisbursement = new Disbursement() { Description = "Test from API", Links = { Action = actionId } }; var newDisbursementRequest = new CreateDisbursementsRequest() { Disbursements = { newDisbursement }, TokenSetQuery = tokenSetQuery }; var result = await actionstepService.Handle <ListDisbursementsResponse>(newDisbursementRequest); }
public async Task <TransactionDisbursementRelationship> Handle(CreateDisbursementsCommand request, CancellationToken cancellationToken) { if (request is null) { throw new System.ArgumentNullException(nameof(request)); } _validator.ValidateAndThrow(request); var disbursementsToCreate = DisbursementFactory.FromTransaction( request.ActionstepMatterId, request.Transaction, request.TaxCodeIdWithGST, request.TaxCodeIdNoGST); var createDisbursementsRequest = new CreateDisbursementsRequest(); createDisbursementsRequest.Disbursements.AddRange(disbursementsToCreate); createDisbursementsRequest.TokenSetQuery = new TokenSetQuery(request.ActionstepUserId, request.ActionstepOrgKey); var createdDisbursements = await _actionstepService.Handle <ListDisbursementsResponse>(createDisbursementsRequest); var gstTaxableDisbursement = createdDisbursements.Disbursements.SingleOrDefault(d => d.Links.TaxCode == request.TaxCodeIdWithGST); var gstFreeDisbursement = createdDisbursements.Disbursements.SingleOrDefault(d => d.Links.TaxCode == request.TaxCodeIdNoGST); return(new TransactionDisbursementRelationship( request.Transaction.TransactionId, request.ActionstepOrgKey, request.ActionstepMatterId, gstTaxableDisbursement?.Id, gstFreeDisbursement?.Id)); }
public async Task <ListDisbursementsResponse> Handle(CreateDisbursementsCommand request, CancellationToken cancellationToken) { if (request is null) { throw new ArgumentNullException(nameof(request)); } // Get Actionstep matter info var tokenSetQuery = new TokenSetQuery(request.AuthenticatedUser?.Id, request.ActionstepOrg); var createDisbursementsRequest = new CreateDisbursementsRequest() { TokenSetQuery = tokenSetQuery }; createDisbursementsRequest.Disbursements.Add(new Disbursement() { Date = LocalDate.FromDateTime(DateTime.Now), Description = "Premium", ImportExternalReference = request.PolicyNumber, Quantity = 1, UnitPrice = request.FirstTitlePrice.Premium, UnitPriceIncludesTax = false, Links = { Action = 23, TaxCode = 7 // S 10.0 } }); createDisbursementsRequest.Disbursements.Add(new Disbursement() { Date = LocalDate.FromDateTime(DateTime.Now), Description = "StampDuty", ImportExternalReference = request.PolicyNumber, Quantity = 1, UnitPrice = request.FirstTitlePrice.StampDuty, UnitPriceIncludesTax = false, Links = { Action = 23, TaxCode = 8 // BAS Excluded } }); var response = await _actionstepService.Handle <ListDisbursementsResponse>(createDisbursementsRequest); return(response); }