Repository navigation
Topic Merge Service #141
Copy link
Copy link
Open
Labels
Area: EntityRelates to the core data data structure for modeling topic entities.Relates to the core data data structure for modeling topic entities.Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Relates to the `ITopicRepository` interface or one of its implementations.Priority: 2Severity 1: MinorStatus 2: ScheduledPlanned for an upcoming release.Planned for an upcoming release.Type: FeatureIntroduces a major area of functionality.Introduces a major area of functionality.
Milestone
Description
Extract the logic merge one topic's content into another into a reusable service. That logic is currently implemented twice: Once (fully-featured) in the companion Data Transfer import/export tool, and once (a stripped-down special case) in the core library's ITopicRepository.Rollback() feature.
Tasks
- Build a generic merge service in core
-
ITopicMergeService -
TopicMergeService -
MergeStrategy -
MergeOptions
-
- Attempt to re-express the existing
ITopicRepository.Rollback()merge logic on top of the new merge service (TopicRepository.MergeVersion())- Acceptable if this doesn't integrate cleanly;
MergeVersion()can stay separate
- Acceptable if this doesn't integrate cleanly;
- Document the ability to seed one repository from another using the merge service (for the Data Transfer Service)
- Upgrade
OnTopic-Data-Transferto depend on the merge service- Adopt the shared serialization and merge logic in place of its own types and methods:
-
TopicData -
RecordData -
MultiMap -
Import() -
Export()
-
- Adopt the shared serialization and merge logic in place of its own types and methods:
- Create unit tests to validate the above logic
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area: EntityRelates to the core data data structure for modeling topic entities.Relates to the core data data structure for modeling topic entities.Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Relates to the `ITopicRepository` interface or one of its implementations.Priority: 2Severity 1: MinorStatus 2: ScheduledPlanned for an upcoming release.Planned for an upcoming release.Type: FeatureIntroduces a major area of functionality.Introduces a major area of functionality.
Activity
JsonTopicRepository#140