Skip to content

Commit cf762f7

Browse files
Merge pull request #717 from TransactionProcessing/bug/#716_fix_pk_violations
Enhance error handling and update event processing
2 parents ba4c612 + d4d5c51 commit cf762f7

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

TransactionProcessor.BusinessLogic/EventHandling/VoucherDomainEventHandler.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,11 @@ private async Task<String> GetVoucherOperator(Models.Voucher voucherModel,
141141
EstateManagementGenericContext context = await this.DbContextFactory.GetContext(voucherModel.EstateId, ConnectionStringIdentifier, cancellationToken);
142142

143143
Database.Entities.Transaction transaction = await context.Transactions.SingleOrDefaultAsync(t => t.TransactionId == voucherModel.TransactionId, cancellationToken);
144+
if (transaction == null)
145+
{
146+
throw new Exception($"Transaction not found Transaction Id {voucherModel.TransactionId}");
147+
}
148+
144149
Contract contract = await context.Contracts.SingleOrDefaultAsync(c => c.ContractId == transaction.ContractId, cancellationToken);
145150

146151
return contract.Description;

TransactionProcessor.Repository/ITransactionProcessorReadModelRepository.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1272,7 +1272,7 @@ public async Task<Result> RecordTransactionAdditionalRequestData(TransactionDoma
12721272

12731273
await context.TransactionsAdditionalRequestData.AddAsync(additionalRequestData, cancellationToken);
12741274

1275-
return await context.SaveChangesAsync(cancellationToken);
1275+
return await context.SaveChangesWithDuplicateHandling(cancellationToken);
12761276
}
12771277

12781278
public async Task<Result> RecordTransactionAdditionalResponseData(TransactionDomainEvents.AdditionalResponseDataRecordedEvent domainEvent,
@@ -1301,7 +1301,7 @@ public async Task<Result> RecordTransactionAdditionalResponseData(TransactionDom
13011301

13021302
await context.TransactionsAdditionalResponseData.AddAsync(additionalResponseData, cancellationToken);
13031303

1304-
return await context.SaveChangesAsync(cancellationToken);
1304+
return await context.SaveChangesWithDuplicateHandling(cancellationToken);
13051305
}
13061306

13071307
public async Task<Result> SetTransactionAmount(TransactionDomainEvents.AdditionalRequestDataRecordedEvent domainEvent,
@@ -1374,7 +1374,7 @@ public async Task<Result> StartTransaction(TransactionDomainEvents.TransactionHa
13741374
await context.AddAsync(t, cancellationToken);
13751375

13761376
Logger.LogDebug($"Transaction Loaded with Id [{domainEvent.TransactionId}]");
1377-
return await context.SaveChangesAsync(cancellationToken);
1377+
return await context.SaveChangesWithDuplicateHandling(cancellationToken);
13781378
}
13791379

13801380
public async Task<Result> UpdateEstate(EstateDomainEvents.EstateReferenceAllocatedEvent domainEvent,

TransactionProcessor/appsettings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,11 @@
191191
"TransactionProcessor.BusinessLogic.EventHandling.ReadModelDomainEventHandler,TransactionProcessor.BusinessLogic"
192192
],
193193
"VoucherIssuedEvent": [
194+
"TransactionProcessor.BusinessLogic.EventHandling.ReadModelDomainEventHandler,TransactionProcessor.BusinessLogic",
194195
"TransactionProcessor.BusinessLogic.EventHandling.VoucherDomainEventHandler, TransactionProcessor.BusinessLogic",
195-
"TransactionProcessor.BusinessLogic.EventHandling.TransactionDomainEventHandler, TransactionProcessor.BusinessLogic"
196196
],
197197
"VoucherFullyRedeemedEvent": [
198+
"TransactionProcessor.BusinessLogic.EventHandling.ReadModelDomainEventHandler,TransactionProcessor.BusinessLogic",
198199
"TransactionProcessor.BusinessLogic.EventHandling.ReadModelDomainEventHandler,TransactionProcessor.BusinessLogic"
199200
],
200201
// Operator Domain Event Handler

0 commit comments

Comments
 (0)