// import metadata structure
public long importMetadataStructure(string filePath, string userName, string schemaFile = "", string schemaName = "", string titlePath = "", string descriptionPath = "")
{
if (string.IsNullOrEmpty(schemaFile))
schemaFile = filePath + @"\schema_toImport.xsd";
MetadataStructureManager metadataStructureManager = new MetadataStructureManager();
XmlSchemaManager xmlSchemaManager = new XmlSchemaManager();
MetadataStructure metadataStructure = new MetadataStructure();
if (string.IsNullOrEmpty(schemaName))
schemaName = "BExIS";
string root = "";
if (string.IsNullOrEmpty(titlePath))
titlePath = "Metadata/general/general/title/title";
if (string.IsNullOrEmpty(descriptionPath))
descriptionPath = "Metadata/methodology/methodology/introduction/introduction";
MetadataStructure existMetadataStructures = metadataStructureManager.Repo.Get(m => m.Name.Equals(schemaName)).FirstOrDefault();
if (existMetadataStructures == null)
{
// load schema xsd
long metadataStructureid = 0;
xmlSchemaManager.Load(schemaFile, userName);
try
{
metadataStructureid = xmlSchemaManager.GenerateMetadataStructure(root, schemaName);
}
catch
{
xmlSchemaManager.Delete(schemaName);
}
metadataStructure = metadataStructureManager.Repo.Get(metadataStructureid);
try
{
// set parameters:
XmlDocument xmlDoc = new XmlDocument();
if (metadataStructure.Extra != null)
{
xmlDoc = (XmlDocument)metadataStructure.Extra;
}
// add title Node
xmlDoc = AddReferenceToMetadatStructure(metadataStructure, "title", titlePath, "extra/nodeReferences/nodeRef", xmlDoc);
// add Description
xmlDoc = AddReferenceToMetadatStructure(metadataStructure, "description", descriptionPath, "extra/nodeReferences/nodeRef", xmlDoc);
metadataStructure.Extra = xmlDoc;
metadataStructureManager.Update(metadataStructure);
}
catch
{
//
}
}
else
{
metadataStructure = existMetadataStructures;
}
return metadataStructure.Id;
}