Wayfinder / Case study / Nine synthesis views

This view contains identified evidence gaps.

Component cooperation

In this document

Which internal components cooperate, what are their responsibilities, and what passes between them?

This view separates request forwarding, notification processing, and document assembly. Published analyses report selected controller-to-mediator calls, handler-to-context operations, progress queries, and document-block invocation; they do not establish a complete runtime call graph. E0017 E0105 E0008 E0457

Read each relationship as a bounded call or exchange described in the supplied documents. In particular, the web forwarding path stops at the IWS API client: the supplied evidence does not establish its downstream dispatch into the modeled notification handlers. Project references and request declarations are not used to fill that gap. E0105 E0054

The model preserves two distinctions: requesting a save is not proof of atomic persistence and event delivery, and merging document blocks is not proof of successful rendering, storage, or transmission. These are published source analyses, not live verification. E0173 E0457

Diagram

Source-derived diagram. Some relationships may be inferred and require review.

Preparing diagram…

View Mermaid diagram source
flowchart LR
  n105936c0b29f9ea68d21["Notification controllers #40;inferred#41;"]
  ne2bc2203e4fca5d07ca7["ApiMediator"]
  ncfd245c960552af24d7e["IWS API client"]
  n567c5597c1bdb2e60ff4["Notification handlers #40;inferred#41;"]
  n19a256f408c095f485a4["NotificationAssessment"]
  n85e794e44822c37f7d6d["NotificationProgressService"]
  n623130922591c0a9bbce["IwsContext"]
  n74fbc6f9575624c0042c["MovementDocument"]
  n07d66bd8dd95a2eed260["Document blocks #40;inferred#41;"]
  n105936c0b29f9ea68d21 -.->|"Notification request objects, including submission and information-retrieval requests. #91;E0017#93; #40;inferred#41;"| ne2bc2203e4fca5d07ca7
  ne2bc2203e4fca5d07ca7 -->|"Request object and user or client-credentials access token. #91;E0105#93;"| ncfd245c960552af24d7e
  n567c5597c1bdb2e60ff4 -->|"Notification records, reason-for-export changes, and newly constructed assessment and guarantee-collection records. #91;E0008#93;"| n623130922591c0a9bbce
  n567c5597c1bdb2e60ff4 -->|"Loaded assessment and a resubmission operation. #91;E0008#93;"| n19a256f408c095f485a4
  n567c5597c1bdb2e60ff4 -->|"Notification progress request and calculated progress information. #91;E0008#93;"| n85e794e44822c37f7d6d
  n85e794e44822c37f7d6d -->|"Notification identifier sent to the procedure#59; five expected result sets returned for progress calculation. #91;E0008#93;"| n623130922591c0a9bbce
  n74fbc6f9575624c0042c -->|"Annex number passed to qualifying blocks#59; blocks populate document fields and annex tables. #91;E0457#93;"| n07d66bd8dd95a2eed260

Elements

Notification controllers

Kind: component Basis: inferred Description: A grouping of the reported notification MVC controllers. They coordinate form processing and navigation and send requests for notification information, edits, sharing, and submission through a mediator. Their visible checks do not establish all downstream authorization or persistence behavior. E0017 Evidence: E0017

ApiMediator

Kind: component Basis: reported Description: The web-side mediator forwards requests to IIwsClient with an access token. It first considers the HTTP user’s token and otherwise obtains a client-credentials token; ordinary requests have a visible unauthenticated-user rejection branch. Its non-generic forwarding overload is unimplemented. E0105 Evidence: E0105

IWS API client

Kind: component Basis: reported Description: IIwsClient is the request-forwarding dependency used by ApiMediator. Web configuration registers it with a request-scoped lifetime, but the supplied evidence does not establish its response handling or downstream dispatch behavior. E0105 E0510 Evidence: E0105 E0510

Notification handlers

Kind: component Basis: inferred Description: A grouping of the reported notification request and event handlers. Selected handlers retrieve and map notification data, request progress information, change the reason for export, resubmit assessments, and create assessment and guarantee-collection records in response to notification creation. E0008 Evidence: E0008

NotificationAssessment

Kind: component Basis: reported Description: The assessment domain implementation exposes lifecycle operations, including the Resubmit operation invoked by the reported handler. Supplied unit-test analysis describes submission, receipt, commencement, and later transitions, but those assertions are not production-conformance evidence. E0008 E0279 Evidence: E0008 E0279

NotificationProgressService

Kind: component Basis: reported Description: Retrieves notification progress through a database procedure, translates five expected result sets, and applies completion rules over notification parties, facilities, waste information, and customs-office selections. The procedure definition and result-set guarantees are not supplied. E0008 Evidence: E0008

IwsContext

Kind: component Basis: reported Description: Provides Entity Framework-backed notification access and persistence infrastructure. Its notification retrieval method checks owner, internal-user, or shared-user access. The shared ContextBase save implementation invokes identifier, relationship-cleanup, and audit hooks before persistence, then dispatches events after the base save returns. E0173 Evidence: E0173

MovementDocument

Kind: component Basis: reported Description: Coordinates document assembly by ordering blocks, invoking their merge operations, and conditionally requesting annex generation with an annex number. Final document saving and production rendering are outside the supplied evidence. E0457 Evidence: E0457

Document blocks

Kind: component Basis: inferred Description: A grouping of the reported specialized merge components, including CarrierBlock, FacilityBlock, and CustomsOfficeBlock. They populate main-document fields and annex structures; annex-bearing implementations deliberately defer some main-document work until annex generation. E0457 Evidence: E0457

Relationships

Submit notification requests

From: Notification controllers To: ApiMediator Relation: calls Basis: inferred Description: The controllers invoke IMediator, including sending SubmitNotification with the posted notification identifier. ApiMediator is the reported web forwarding implementation; attributing these interface calls to it relies on the documented composition rather than a verified runtime trace. E0017 E0105 E0510 Evidence: E0017 E0105 E0510 Information: Notification request objects, including submission and information-retrieval requests. E0017 Mechanism: IMediator asynchronous request invocation with web-side ApiMediator forwarding. E0017 E0105

Forward token-bearing requests

From: ApiMediator To: IWS API client Relation: calls Basis: reported Description: ApiMediator forwards the request and selected access token to IIwsClient. The handling of blank tokens for authenticated users and the client’s response semantics remain unresolved. E0105 Evidence: E0105 Information: Request object and user or client-credentials access token. E0105 Mechanism: IIwsClient delegation after token selection and the applicable unauthenticated-user check. E0105

Load and save notification records

From: Notification handlers To: IwsContext Relation: calls Basis: reported Description: Selected handlers load notification data through the context and request saves after changes. NotificationCreatedEventHandler adds a new assessment and financial-guarantee collection to the context and saves; SetReasonForExportHandler changes the notification’s reason and saves. These examples do not establish one universal transaction boundary. E0008 E0173 Evidence: E0008 E0173 Information: Notification records, reason-for-export changes, and newly constructed assessment and guarantee-collection records. E0008 Mechanism: Context retrieval, record addition, and save operations. E0008

Resubmit an assessment

From: Notification handlers To: NotificationAssessment Relation: calls Basis: reported Description: ResubmitNotificationHandler loads an assessment, invokes Resubmit, requests persistence, and returns true on the reported path. The dependency’s complete transition and failure policy is not established by that handler description. E0008 Evidence: E0008 Information: Loaded assessment and a resubmission operation. E0008 Mechanism: Domain-method invocation followed by a context save. E0008

Request progress information

From: Notification handlers To: NotificationProgressService Relation: calls Basis: reported Description: GetNotificationProgressInfoHandler synchronously invokes GetNotificationProgressInfo and wraps the result in a completed task. Its task-shaped response therefore does not make the underlying progress call asynchronous. E0008 Evidence: E0008 Information: Notification progress request and calculated progress information. E0008 Mechanism: Synchronous service call with a task-wrapped result. E0008

Query progress result sets

From: NotificationProgressService To: IwsContext Relation: exchanges Basis: reported Description: The service uses the context’s database connection to execute the notification progress procedure and translate five expected result sets: notification, producers, facilities, waste codes, and customs offices. It closes the connection in a finally block; complete command and reader disposal is not established. E0008 Evidence: E0008 Information: Notification identifier sent to the procedure; five expected result sets returned for progress calculation. E0008 Mechanism: Raw SQL through the context connection and Entity Framework ObjectContext translation. E0008

Merge blocks and generate annexes

From: MovementDocument To: Document blocks Relation: calls Basis: reported Description: MovementDocument invokes Merge in ordinal order and invokes GenerateAnnex only for annex-capable blocks whose HasAnnex value is true. Carrier, facility, and customs-office blocks divide responsibility between the main merge and annex phase rather than performing two independent complete merges. E0457 Evidence: E0457 Information: Annex number passed to qualifying blocks; blocks populate document fields and annex tables. E0457 Mechanism: Ordered block invocation with conditional annex dispatch. E0457

Gaps

  • Forwarding-to-handler bridge: No relationship connects the IWS API client to Notification handlers because the supplied material does not establish that dispatch path. Follow-up requires client implementation, API dispatch code, and effective dependency registrations—not merely project references. E0105 E0054
  • Persistence and event timing: Chapter descriptions are inconsistent: the capability chapter says event dispatch occurs before persistence, while the supplied ContextBase analysis places dispatch after the base save returns. The model follows that underlying evidence and retains the chapter discrepancy. Outbox, retry, rollback coordination, and atomic event delivery remain unestablished. C02 E0173
  • Assessment scope: Export-assessment tests describe submission into Submitted; the import-assessment implementation analysis describes NotificationReceived to AwaitingPayment, with AwaitingPayment beneath Submitted. These must not be collapsed into a single concrete transition policy. E0279 E0508
  • Progress contract: The consumer expects five result sets, but their database schemas and guaranteed availability are unknown. Inspect the procedure definition and failure-path tests before treating this exchange as a stable contract. E0008
  • Document assembly: Factory selection, complete block inventory, ordinal collisions, template validity, and final storage or transmission are unresolved. Facility annex generation also mutates its internal list and requires exactly one actual site, so repeated invocation cannot be assumed safe. E0457
  • Controls and runtime composition: Controller checks, request annotations, and selected context access checks do not establish end-to-end authorization for every modeled request. Effective registrations, callers, and negative integration tests are needed to resolve coverage and deployment boundaries. E0017 E0054 E0173

Recovery limitations

  • The view includes explicitly marked inference.

Sources

  • C02 — SHA256 5f0242dead31d39b1254a75032bb6e91eb76df06330b351c7542819e8ed170b4
  • E0008 — SHA256 090f3006325dff37b2efc4e57bd7f71899a754f0f12a367d7231326c45846ad2
  • E0017 — SHA256 d085853b1955cb12eb4ab9e6d7193b1ecca10fb74c074a1b98277f70d3bc8e36
  • E0054 — SHA256 cf3ccd21dd34a999412e6942b02fe8627a71799c492186cbd7aea21eb1473159
  • E0105 — SHA256 12b62da8b7e9a99fadf1119260cb9fac7f4c9573127847ceed2eda7b4fd93cbb
  • E0173 — SHA256 e52583c3a417dd5189ef0f3b9aeb1c84b0cfa29b659fa0f71d269f70f65f1630
  • E0279 — SHA256 50c25a25ef0bf7c0c7cb77e8f6667f868754ece4a34ac1f6e7083a220f3e7f5a
  • E0457 — SHA256 98f2f7867c866205f57b8712e268ff3ff5704e1533ff236617e4e4717c0a52aa
  • E0508 — SHA256 159c8fcca453ac20608d565a3dceaa2d35a3c78b67f16c621a090393e2496cd2
  • E0510 — SHA256 2664b03966f4bb1abf42bd2eda4e9ceba87b6c6bbc8a90acbeadf144ba34d0af