/// ------------------------------------------------------------------------------------ /// <summary> /// Return the transcription and/or translation roles if all the segments are not /// empty. /// </summary> /// ------------------------------------------------------------------------------------ public override IEnumerable <ComponentRole> GetAssignedRoles() { var transcriptionTier = Tiers.GetTranscriptionTier(); if (transcriptionTier != null && transcriptionTier.GetIsComplete()) { yield return(_componentRoles.Single(r => r.Id == ComponentRole.kTranscriptionComponentRoleId)); } // Stage status (complete-incomplete) is not displaying the status for Written Translations correctly, if one or more segments are ignored. var translationTier = Tiers.GetFreeTranslationTier(); if (translationTier != null && translationTier.GetIsComplete(transcriptionTier)) { yield return(_componentRoles.Single(r => r.Id == ComponentRole.kFreeTranslationComponentRoleId)); } if (Tiers.GetIsAdequatelyAnnotated(OralAnnotationType.CarefulSpeech)) { yield return(_componentRoles.Single(r => r.Id == ComponentRole.kCarefulSpeechComponentRoleId)); } if (Tiers.GetIsAdequatelyAnnotated(OralAnnotationType.Translation)) { yield return(_componentRoles.Single(r => r.Id == ComponentRole.kOralTranslationComponentRoleId)); } }