An investigation/case number (InvestigationId) is required specifically when the recording is being imported for the Fraud recording system.
Trigger
Same as BR-AV-01, conditional on RecordingSystem == RecordingSystemTypes.Fraud.
Enforcement
AudioVideoValidator — RuleFor(x => x.InvestigationId).NotEmpty().When(x => x.RecordingSystem == RecordingSystemTypes.Fraud).WithMessage("Error: A case number is required.").
Outcome
Same as BR-AV-01; displayed message: "Error: A case number is required."
The combined recording description and notes must be ≤ 100 characters (the validator's displayed message states "less than 80 characters", but the coded rule checks <= 100 — a description/message mismatch)*.
Recording retention (PurgeDate) and the stored RecordingSystemCode vary by RecordingSystemTypes: Board Minutes → +90 years, code "BRD" (default); Claim → +75 years, code "CLM"; Fraud → +5 years, code "FRD".
Trigger
ImportRecording, evaluated for every new recording import, in AudioVideoService.CreateRecording.
A recording is classified discoverable (IsDiscoverable) only when it is a Claim-system recording and either there is no "Other Party" key/value or the "Other Party" is "Injured Worker".
Trigger
AudioVideoService.CreateRecording (via request.CallRecording.IsDiscoverable(request.RecordingSystem)), during ImportRecording.
The recording Description defaults to the "Other Party" key/value if present, else "Injured Worker"; if any KeyValues exist, the recording's free-text Notes are appended with a leading space.
Trigger
AudioVideoService.CreateRecording during ImportRecording; also evaluated by AudioVideoValidator for BR-AV-05.
A recording import is not considered successful unless the source recording is also deleted from the CallRex vendor system; failure to delete forces the import into an errored state even though local persistence and file conversion already succeeded.
AudioVideoService.ImportRecording — if (!_recordingSystem.DeleteRecording(...)) block.
Outcome
Sets import status to Errored (AudioImportStatus) and throws ApplicationException; the local Recording row created earlier is not rolled back in this branch (only the earlier catch block deletes it) — an asymmetry noted as an open question in the analysis*.
Vendor-side AttachedDataContainer.Description updated via UpdateAttachedDataByCallLogID; local AudioImportStatus row removed via ImportStatusManager.RemoveStatus.
Whether a recording is treated as a "test" recording and whether it has an "invalid context number" are both derived by case-insensitive regex matching of the vendor attached-data Description for the literal substrings "test" and "invalid", respectively.
Trigger
CallRexServiceProxy.GetRecording (private), evaluated for every recording returned from CallRex.
Sets CallRecording.IsProductionRecording (= !isTestRecording) and CallRecording.HasInvalidContextNumber; also strips the literal substring "test" (case-insensitive) from the description text via Regex.Replace.
Mark inferred statements with * and unknown statements with **. Do not use bold inline confidence labels.
BR-AV-05 and BR-AV-09 document known message/rule mismatches and rollback asymmetries observed in source; these are recorded as-is without asserting they are defects.
Note: Statements marked with * were inferred from code structure, naming
conventions, or contextual evidence where direct confirmation was not available
in source artifacts. Statements marked with ** could not be confirmed; treat
as unknown until verified.