Pull updating commits hashes out of SnapshotWorker #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor to clean up some of #54
#54 introduced the possibility of a commit not generating any snapshots (by not generating a new snapshot if a change object was ignored, which happens in the edge case of a create-change being applied to an entity that already exists and is not deleted).
That change uncovered the fact, that we're relying on the call to
DbContext.SaveChangesAsync()inCrdtRepository.AddSnapshots()to persist updates to commit hashes.That's very subtle and is not a good separation of concerns.
This PR pulls that commit-hash-updating out of SnapshotWorker and does it immediately when commits are added to the db-context.
I also started making use of
SortedSet<Commit>, so that collections of commits can be passed around without each method having to make sure they're sorted.