/// <summary>Sets values common to both media and written resources</summary> /// <param name="resource"></param> /// <param name="sessionDirectoryName"></param> private void SetResourceProperties(IIMDISessionFile resource, string sessionDirectoryName) { resource.ResourceLink = new ResourceLinkType { Value = ResourceLink(sessionDirectoryName, NormalizedName) }; resource.OutputDirectory = sessionDirectoryName; if (IsMediaFile) { resource.Format = MimeType.ToVocabularyType(false, ListType.Link(ListType.MediaFileFormat)); resource.Type = GeneralType.ToVocabularyType(false, ListType.Link(ListType.MediaFileType)); } else { resource.Format = MimeType.ToVocabularyType(false, ListType.Link(ListType.WrittenResourceFormat)); resource.Type = GeneralType.ToVocabularyType(false, ListType.Link(ListType.WrittenResourceType)); } resource.Size = FileSize; foreach (var description in Descriptions) { resource.Description.Add(description.ToIMDIDescriptionType()); } resource.FullPathAndFileName = FullName; // Description is required if (resource.Description.Count == 0) { resource.Description.Add(new LanguageString()); } if (AccessCode != null) { resource.Access = new AccessType { Availability = AccessCode } } ; } }