Skip to content

Retrieve recording status

This operation covers the two read-only lookups a caller uses to check the state of a previously (or currently) imported recording: the persisted recording metadata, and its separate import-tracking status record.

Field Value
Operation ID OP-AV-RETRIEVE-STATUS
Trigger Caller invokes AudioVideoService.GetRecordingInfo(Guid callRecordingId) and/or ImportStatusManager.GetStatus(Guid callRecordingId)
Inputs Guid callRecordingId
Outputs RecordingInfo (or null) from GetRecordingInfo; AudioImportStatusInfo from GetStatus
Primary components AudioVideoService.GetRecordingInfo, ImportStatusManager.GetStatus
Entry point Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs, Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.cs

Steps

  1. GetRecordingInfo(Guid callRecordingId): looks up the Recording entity by CallRexId via the repository query used by AudioVideoService.GetRecording.
  2. If found: maps the entity to a RecordingInfo DTO (RecordingId, CallRecordingId, ClaimId, Location, RecordedByUserId, Description, StartDate, Duration) and returns it.
  3. If not found: returns null — no exception is raised.
  4. ImportStatusManager.GetStatus(Guid callRecordingId): queries the AudioImportStatus entity by Id.
  5. If found: returns the persisted AudioImportStatusInfo (Id, Status, Reason).
  6. If not found: returns a synthetic result with Status = "Missing" (BR-AV-18) — no exception is raised.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Caller requests status]) --> Choice{Which lookup?}
    Choice -->|Recording metadata| S1[Query Recording by CallRexId]
    S1 -->|Found| R1([Return RecordingInfo])
    S1 -->|Not found| R2([Return null])
    Choice -->|Import status| S2[Query AudioImportStatus by Id]
    S2 -->|Found| R3([Return AudioImportStatusInfo])
    S2 -->|Not found| R4([Return synthetic 'Missing' status])

Failure and edge-case behavior

  • Neither lookup throws when the target row is absent; both return a benign "not found" value (null or a synthetic "Missing" status) rather than an exception (BR-AV-18).

Sources

  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs
  • Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\ImportStatusManager.cs