public async Task <IEnumerable <ClaimCost> > Handle(FetchClaimCostsByClaimIdRequest request, CancellationToken cancellationToken) { return(await Task.Run(() => { var claimCosts = this.cloudPocClaimsDatabase .ExecuteQueryProcedure <ClaimCostRecord>( CloudPocClaimsDatabaseProcedures.FetchClaimCostsByClaimId, request, cancellationToken) .Select(c => c.ToClaimCost()); if (request.WithAttachments) { claimCosts = claimCosts.Select(AddClaimCostAttachments); } return claimCosts; })); }
public async Task <Claim> Handle(FetchClaimByClaimIdRequest request, CancellationToken cancellationToken) { return(await Task.Run(() => { var claimRecord = this.cloudPocClaimsDatabase .ExecuteQueryProcedure <ClaimRecord>( CloudPocClaimsDatabaseProcedures.FetchClaimFlightByClaimId, request, cancellationToken) .FirstOrDefault(); if (claimRecord == null || cancellationToken.IsCancellationRequested) { return null; } var claim = claimRecord.ToClaim(); if (request.Flags.HasFlag(FetchClaimRequestFlags.WithClaimAttachments) && !cancellationToken.IsCancellationRequested) { var fetchClaimAttachmentRequests = new FetchClaimAttachmentsByClaimIdRequest(request.ClaimId); var claimAttachments = this.mediator.Send(fetchClaimAttachmentRequests); claim.ClaimAttachments = claimAttachments.Result; } if (request.Flags.HasFlag(FetchClaimRequestFlags.WithClaimCosts) && !cancellationToken.IsCancellationRequested) { var withAttachments = request.Flags.HasFlag(FetchClaimRequestFlags.WithClaimCostAttachments); var fetchClaimCostRequests = new FetchClaimCostsByClaimIdRequest(request.ClaimId, withAttachments); var claimCosts = this.mediator.Send(fetchClaimCostRequests); claim.ClaimCosts = claimCosts.Result; } return claim; })); }