Skip to content

Look up recording information

This operation retrieves a previously imported recording's persisted metadata by its vendor CallRexId.

Field Value
Operation ID OP-AV-04
Trigger External caller invokes IAudioVideoService.GetRecordingInfo(Guid callRecordingId).
Inputs Guid callRecordingId
Outputs RecordingInfo, or null if no matching recording is found.
Primary components AudioVideoService.GetRecordingInfo
Entry point Application\SAIF.Application.Services.AudioVideo\Services\Utilities\AudioVideo\AudioVideoService.cs

Steps

  1. Guard: throw NotImplementedException if the service was constructed via the degraded constructor (_enableServicesFlag == false).
  2. Look up the recording via private GetRecording(callRecordingId) — the same IRepository<Recording>.Query().FirstOrDefault(x => x.CallRexId == callRecordingId.ToString()) query used in Import a call recording from CallRex.
  3. Map the Recording entity to the RecordingInfo contract via a private overload, or return null if no matching row was found.

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([GetRecordingInfo invoked]) --> Guard{Degraded mode?}
    Guard -->|Yes| ErrNotImpl([NotImplementedException])
    Guard -->|No| Query[Query RECORDING by CallRexId]
    Query -->|Found| Map[Map to RecordingInfo]
    Query -->|Not found| Null([Return null])
    Map --> Return([Return RecordingInfo])

Failure and edge-case behavior

  • Degraded-mode construction blocks this operation entirely with NotImplementedException.
  • No matching recording returns null rather than throwing.

Sources

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