Skip to content

Split ReportingManager into focused reporting services #598

Description

@StuartFerguson

Problem

ReportingManager.cs has grown into a very large class containing estate, merchant, operator, contract, transaction, settlement, calendar, and file-import reporting logic. This makes changes difficult to isolate and increases test complexity.

Relevant area:

  • EstateReportingAPI.BusinessLogic/ReportingManager.cs

Scope

Extract cohesive services behind focused interfaces, such as:

  • Transaction reporting.
  • Merchant/operator reporting.
  • Settlement reporting.
  • Estate and configuration lookups.
  • File-import reporting.

Keep the existing MediatR request/handler behavior and public API contracts unchanged during the refactor.

Acceptance criteria

  • Each extracted service has a focused responsibility and interface.
  • Existing endpoint behavior and response contracts remain unchanged.
  • Existing integration tests continue to pass.
  • New unit tests can exercise report calculations without requiring the entire manager.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions