Skip to content

Topic Merge Service #141

Description

@JeremyCaney

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
  • Document the ability to seed one repository from another using the merge service (for the Data Transfer Service)
  • Upgrade OnTopic-Data-Transfer to 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()
  • Create unit tests to validate the above logic

Metadata

Metadata

Assignees

Labels

Area: EntityRelates to the core data data structure for modeling topic entities.Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Priority: 2Severity 1: MinorStatus 2: ScheduledPlanned for an upcoming release.Type: FeatureIntroduces a major area of functionality.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions