Ejemplo n.º 1
0
        private string CreateCorpusCatalogue()
        {
            // Create the package catalogue imdi file
            var catalogue = new Catalogue
            {
                Name  = Name + " Catalogue",
                Title = Title,
                Date  = DateTime.Today.ToISO8601DateOnlyString(),
            };

            foreach (var language in MetadataIso3Languages)
            {
                var imdiLanguage = LanguageList.Find(language).ToSimpleLanguageType();
                if (imdiLanguage != null)
                {
                    catalogue.DocumentLanguages.Language.Add(imdiLanguage);
                }
            }


            foreach (var language in ContentIso3Languages)
            {
                var imdiLanguage = LanguageList.Find(language).ToSubjectLanguageType();
                if (imdiLanguage != null)
                {
                    catalogue.SubjectLanguages.Language.Add(imdiLanguage);
                }
            }

            // funding project
            if (FundingProject != null)
            {
                catalogue.Project.Add(new Project(FundingProject));
            }

            // location
            if (Location != null)
            {
                catalogue.Location.Add(new LocationType(Location));
            }

            // content type
            if (!string.IsNullOrEmpty(ContentType))
            {
                catalogue.ContentType.Add(ContentType);
            }

            // applications
            if (!string.IsNullOrEmpty(Applications))
            {
                catalogue.Applications = Applications;
            }

            // author
            if (!string.IsNullOrEmpty(Author))
            {
                catalogue.Author.Add(new CommaSeparatedStringType {
                    Value = Author
                });
            }

            // publisher
            if (!string.IsNullOrEmpty(Publisher))
            {
                catalogue.Publisher.Add(Publisher);
            }

            // keys
            foreach (var kvp in _keys)
            {
                catalogue.Keys.Key.Add(new KeyType {
                    Name = kvp.Key, Value = kvp.Value
                });
            }

            // access
            if (!string.IsNullOrEmpty(Access.DateAvailable))
            {
                catalogue.Access.Date = Access.DateAvailable;
            }

            if (!string.IsNullOrEmpty(Access.Owner))
            {
                catalogue.Access.Owner = Access.Owner;
            }

            // write the xml file
            var catImdi = new MetaTranscript {
                Items = new object[] { catalogue }, Type = MetatranscriptValueType.CATALOGUE
            };

            return(catImdi.WriteImdiFile(_packagePath, Name).Replace("\\", "/"));
        }
        private Languages FindCurrentLanguage()
        {
            string currentLanguageCode = settingsWorkQuery.FindCurrentLanguage();

            return(LanguageList.Find(l => l.Code == currentLanguageCode));
        }