Ejemplo n.º 1
0
        /// <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
                }
            }
            ;
        }
    }