diff --git a/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js b/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js
index d748f44..954eec4 100644
--- a/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js
+++ b/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js
@@ -24,6 +24,9 @@ test('Projection Can Handle Merchant Events',
var automaticDepositMadeEvent =
testData.getAutomaticDepositMadeEvent(estateId, merchantId, depositDateTime, depositAmount);
+ var withdrawalMadeEvent =
+ testData.getWithdrawalMadeEvent(estateId, merchantId, depositDateTime, depositAmount);
+
projection.processEvent(
'MerchantAggregate-' + merchantId.replace(/-/gi, ""),
merchantCreatedEvent.eventType,
@@ -39,8 +42,13 @@ test('Projection Can Handle Merchant Events',
automaticDepositMadeEvent.eventType,
automaticDepositMadeEvent.data);
+ projection.processEvent(
+ 'MerchantAggregate-' + merchantId.replace(/-/gi, ""),
+ withdrawalMadeEvent.eventType,
+ withdrawalMadeEvent.data);
+
var events = projection.emittedEvents;
- t.equal(events.length, 3);
+ t.equal(events.length, 4);
t.end();
});
diff --git a/EventStoreProjections/tests/TestData.js b/EventStoreProjections/tests/TestData.js
index 3538d22..732eecd 100644
--- a/EventStoreProjections/tests/TestData.js
+++ b/EventStoreProjections/tests/TestData.js
@@ -198,6 +198,22 @@ module.exports = {
}
},
+ getWithdrawalMadeEvent: function (estateId, merchantId, withdrawalDateTime, withdrawalAmount) {
+ return {
+ eventType: 'WithdrawalMadeEvent',
+ data: {
+ "amount": withdrawalAmount,
+ "withdrawalDateTime": withdrawalDateTime,
+ "withdrawalId": "ff106578-8495-afe1-1e50-6889d76065a6",
+ "estateId": estateId,
+ "merchantId": merchantId
+ },
+ metadata: {
+ },
+ eventId: "4772BD21-BB70-4F46-9360-F9A6FE04C640"
+ }
+ },
+
getTransactionHasStartedEvent: function(estateId, merchantId, transactionId, transactionAmount, transactionType)
{
return {
diff --git a/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json b/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json
index 414ecbf..87e810c 100644
--- a/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json
+++ b/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json
@@ -63,7 +63,7 @@
"privateAssets": "all"
}
},
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100-rc.2.22477.23\\RuntimeIdentifierGraph.json"
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100\\RuntimeIdentifierGraph.json"
}
}
}
diff --git a/NugetPackage/obj/NugetPackage.csproj.nuget.g.props b/NugetPackage/obj/NugetPackage.csproj.nuget.g.props
index 35c5861..b567679 100644
--- a/NugetPackage/obj/NugetPackage.csproj.nuget.g.props
+++ b/NugetPackage/obj/NugetPackage.csproj.nuget.g.props
@@ -7,7 +7,7 @@
$(UserProfile)\.nuget\packages\
C:\Users\stuar\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files\dotnet\sdk\NuGetFallbackFolder
PackageReference
- 6.4.0
+ 6.5.0
diff --git a/NugetPackage/obj/project.assets.json b/NugetPackage/obj/project.assets.json
index 9aa4546..68d64d8 100644
--- a/NugetPackage/obj/project.assets.json
+++ b/NugetPackage/obj/project.assets.json
@@ -71,7 +71,7 @@
"privateAssets": "all"
}
},
- "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100-rc.2.22477.23\\RuntimeIdentifierGraph.json"
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100\\RuntimeIdentifierGraph.json"
}
}
}
diff --git a/NugetPackage/obj/project.nuget.cache b/NugetPackage/obj/project.nuget.cache
index b348e77..6a64853 100644
--- a/NugetPackage/obj/project.nuget.cache
+++ b/NugetPackage/obj/project.nuget.cache
@@ -1,6 +1,6 @@
{
"version": 2,
- "dgSpecHash": "zKSi6wid/WSnBVdoC/xTn5nYXu7whOdnAbYDX2c907cmEVYMfmCreIiWizMZeX0Heo5FKLmFLarJl29Q9A9qJg==",
+ "dgSpecHash": "7AutP7BXMcuvvQ1EOT2ftQPHtpFOmPoQR5NLE0CkKpPNqaySPU6lJwsWisU7bGIh/mPhalKYHsGOc3JHGhSVNw==",
"success": true,
"projectFilePath": "C:\\Projects\\TransactionProcessing\\EventStoreProjections\\NugetPackage\\NugetPackage.csproj",
"expectedPackageFiles": [],
diff --git a/NugetPackage/projections/continuous/MerchantBalanceAggregator.js b/NugetPackage/projections/continuous/MerchantBalanceAggregator.js
index 4cbc140..5422bc7 100644
--- a/NugetPackage/projections/continuous/MerchantBalanceAggregator.js
+++ b/NugetPackage/projections/continuous/MerchantBalanceAggregator.js
@@ -25,20 +25,30 @@ getMerchantId = function (e) {
return e.data.merchantId;
};
+isEventSupported = function (e) {
+ if (e.eventType == "MerchantCreatedEvent" ||
+ e.eventType === "ManualDepositMadeEvent" ||
+ e.eventType === "AutomaticDepositMadeEvent" ||
+ e.eventType === "TransactionHasStartedEvent" ||
+ e.eventType === "TransactionHasBeenCompletedEvent" ||
+ e.eventType === "MerchantFeeAddedToTransactionEvent" ||
+ e.eventType === "WithdrawalMadeEvent") {
+ return true;
+ }
+ return false;
+}
+
fromAll()
.when({
$any: function (s, e) {
if (isValidEvent(e)) {
var merchantId = getMerchantId(e);
if (merchantId !== null) {
- if (e.eventType == "MerchantCreatedEvent" ||
- e.eventType === "ManualDepositMadeEvent" ||
- e.eventType === "AutomaticDepositMadeEvent" ||
- e.eventType === "TransactionHasStartedEvent" ||
- e.eventType === "TransactionHasBeenCompletedEvent" ||
- e.eventType === "MerchantFeeAddedToTransactionEvent") {
- var streamName = "MerchantBalanceArchive-" + merchantId.replace(/-/gi, "");
- linkTo(streamName, e);
+ {
+ if (isEventSupported(e)) {
+ var streamName = "MerchantBalanceArchive-" + merchantId.replace(/-/gi, "");
+ linkTo(streamName, e);
+ }
}
}
}