Fix IO poison in handlers (UtcNow instead of a passed in date time).
This commit is contained in:
@@ -7,7 +7,10 @@ public record ReverseJournalCommand(Guid OriginalJournalId, string Reason);
|
||||
|
||||
public record JournalReversedEvent(Guid OriginalJournalId, Guid ReversalJournalId);
|
||||
|
||||
public record ReversalData(JournalEntry OriginalJournalEntry, IReadOnlyList<Account> AffectedAccounts);
|
||||
public record ReversalData(
|
||||
JournalEntry OriginalJournalEntry,
|
||||
IReadOnlyList<Account> AffectedAccounts,
|
||||
DateTimeOffset TimeStamp);
|
||||
|
||||
public interface IReversalQuery
|
||||
{
|
||||
@@ -16,7 +19,8 @@ public interface IReversalQuery
|
||||
|
||||
public static class ReverseJournalHandler
|
||||
{
|
||||
public static async Task<ReversalData?> LoadAsync(ReverseJournalCommand cmd, IReversalQuery query)
|
||||
public static async Task<ReversalData?> LoadAsync(ReverseJournalCommand cmd, IReversalQuery query,
|
||||
TimeProvider timeProvider)
|
||||
{
|
||||
var data = await query.GetReversalDataAsync(cmd.OriginalJournalId);
|
||||
return data ?? throw new InvalidOperationException($"Journal Entry {cmd.OriginalJournalId} does not exist");
|
||||
@@ -28,7 +32,7 @@ public static class ReverseJournalHandler
|
||||
JournalReversedEvent Event) Handle(ReverseJournalCommand cmd, ReversalData data)
|
||||
{
|
||||
var reversalJournal =
|
||||
BalancedJournal.CreateReversal(data.OriginalJournalEntry, $"Reversal: {cmd.Reason}", DateTimeOffset.UtcNow);
|
||||
BalancedJournal.CreateReversal(data.OriginalJournalEntry, $"Reversal: {cmd.Reason}", data.TimeStamp);
|
||||
var accountState = data.AffectedAccounts.ToDictionary(a => a.Id);
|
||||
|
||||
reversalJournal.Entry.Lines.ForEach(l =>
|
||||
@@ -41,6 +45,7 @@ public static class ReverseJournalHandler
|
||||
{
|
||||
accountUow.Update(account);
|
||||
}
|
||||
|
||||
return (
|
||||
Storage.Insert(reversalJournal.Entry),
|
||||
accountUow,
|
||||
|
||||
Reference in New Issue
Block a user