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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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