Skip to content

Commit 6b2ba5e

Browse files
Hopefully last review changes
1 parent dcb342f commit 6b2ba5e

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

TransactionProcessor.SettlementAggregates/SettlementAggregate.cs

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
public static class SettlementAggregateExtensions{
1414
public static void MarkFeeAsSettled(this SettlementAggregate aggregate, Guid merchantId, Guid transactionId, Guid feeId)
1515
{
16-
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) pendingFee = aggregate.CalculatedFeesPendingSettlement
17-
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
16+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) pendingFee = SettlementAggregateExtensions.GetPendingFee(aggregate, merchantId, transactionId, feeId);
1817

19-
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) settledFee = aggregate.SettledCalculatedFees
20-
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
18+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) settledFee = SettlementAggregateExtensions.GetSettledFee(aggregate, merchantId, transactionId, feeId);
2119

2220
if (settledFee != default((Guid, Guid, CalculatedFee)))
2321
{
@@ -31,15 +29,7 @@ public static void MarkFeeAsSettled(this SettlementAggregate aggregate, Guid mer
3129
return;
3230
}
3331

34-
MerchantFeeSettledEvent merchantFeeSettledEvent = new MerchantFeeSettledEvent(aggregate.AggregateId,
35-
aggregate.EstateId,
36-
pendingFee.merchantId,
37-
pendingFee.transactionId,
38-
pendingFee.calculatedFee.CalculatedValue,
39-
(Int32)pendingFee.calculatedFee.FeeCalculationType,
40-
pendingFee.calculatedFee.FeeId,
41-
pendingFee.calculatedFee.FeeValue,
42-
pendingFee.calculatedFee.FeeCalculatedDateTime);
32+
MerchantFeeSettledEvent merchantFeeSettledEvent = SettlementAggregateExtensions.CreateMerchantFeeSettledEvent(aggregate, pendingFee);
4333

4434
aggregate.ApplyAndAppend(merchantFeeSettledEvent);
4535

@@ -51,13 +41,30 @@ public static void MarkFeeAsSettled(this SettlementAggregate aggregate, Guid mer
5141
}
5242
}
5343

44+
private static (Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) GetSettledFee(SettlementAggregate aggregate, Guid merchantId, Guid transactionId, Guid feeId){
45+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) settledFee = aggregate.SettledCalculatedFees
46+
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
47+
return settledFee;
48+
}
49+
50+
private static MerchantFeeSettledEvent CreateMerchantFeeSettledEvent(SettlementAggregate aggregate, (Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) feeDetails){
51+
MerchantFeeSettledEvent merchantFeeSettledEvent = new MerchantFeeSettledEvent(aggregate.AggregateId,
52+
aggregate.EstateId,
53+
feeDetails.merchantId,
54+
feeDetails.transactionId,
55+
feeDetails.calculatedFee.CalculatedValue,
56+
(Int32)feeDetails.calculatedFee.FeeCalculationType,
57+
feeDetails.calculatedFee.FeeId,
58+
feeDetails.calculatedFee.FeeValue,
59+
feeDetails.calculatedFee.FeeCalculatedDateTime);
60+
return merchantFeeSettledEvent;
61+
}
62+
5463
public static void ImmediatelyMarkFeeAsSettled(this SettlementAggregate aggregate, Guid merchantId, Guid transactionId, Guid feeId)
5564
{
56-
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) pendingFee = aggregate.CalculatedFeesPendingSettlement
57-
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
65+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) pendingFee = SettlementAggregateExtensions.GetPendingFee(aggregate, merchantId, transactionId, feeId);
5866

59-
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) settledFee = aggregate.SettledCalculatedFees
60-
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
67+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) settledFee = SettlementAggregateExtensions.GetSettledFee(aggregate, merchantId, transactionId, feeId);
6168

6269
if (settledFee != default((Guid, Guid, CalculatedFee)))
6370
{
@@ -71,23 +78,21 @@ public static void ImmediatelyMarkFeeAsSettled(this SettlementAggregate aggregat
7178
return;
7279
}
7380

74-
MerchantFeeSettledEvent merchantFeeSettledEvent = new MerchantFeeSettledEvent(aggregate.AggregateId,
75-
aggregate.EstateId,
76-
pendingFee.merchantId,
77-
pendingFee.transactionId,
78-
pendingFee.calculatedFee.CalculatedValue,
79-
(Int32)pendingFee.calculatedFee.FeeCalculationType,
80-
pendingFee.calculatedFee.FeeId,
81-
pendingFee.calculatedFee.FeeValue,
82-
pendingFee.calculatedFee.FeeCalculatedDateTime);
81+
MerchantFeeSettledEvent merchantFeeSettledEvent = SettlementAggregateExtensions.CreateMerchantFeeSettledEvent(aggregate, pendingFee);
8382

8483
aggregate.ApplyAndAppend(merchantFeeSettledEvent);
8584
}
8685

86+
private static (Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) GetPendingFee(SettlementAggregate aggregate, Guid merchantId, Guid transactionId, Guid feeId){
87+
(Guid transactionId, Guid merchantId, CalculatedFee calculatedFee) pendingFee = aggregate.CalculatedFeesPendingSettlement
88+
.SingleOrDefault(c => c.merchantId == merchantId && c.transactionId == transactionId && c.calculatedFee.FeeId == feeId);
89+
return pendingFee;
90+
}
91+
8792
public static void AddFee(this SettlementAggregate aggregate,
88-
Guid merchantId,
89-
Guid transactionId,
90-
CalculatedFee calculatedFee)
93+
Guid merchantId,
94+
Guid transactionId,
95+
CalculatedFee calculatedFee)
9196
{
9297
Guard.ThrowIfInvalidGuid(merchantId, nameof(merchantId));
9398
Guard.ThrowIfInvalidGuid(transactionId, nameof(merchantId));

0 commit comments

Comments
 (0)