private MetadataStructureModel convertToMetadataStructureModel(MetadataStructure metadataStructure)
{
MetadataStructureModel metadataStructureModel = new MetadataStructureModel();
metadataStructureModel.Id = metadataStructure.Id;
metadataStructureModel.Name = metadataStructure.Name;
try
{
metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructure.Id);
//get all informaions from xml
metadataStructureModel.EntityClasses = GetEntityModelList();
string EntityClassPath = XmlDatasetHelper.GetEntityTypeFromMetadatStructure(metadataStructure.Id);
var entityModel =
metadataStructureModel.EntityClasses.Where(e => e.ClassPath.Equals(EntityClassPath))
.FirstOrDefault();
if (entityModel != null) metadataStructureModel.Entity = entityModel;
string xpath = XmlDatasetHelper.GetInformationPath(metadataStructure, NameAttributeValues.title);
var searchMetadataNode =
metadataStructureModel.MetadataNodes.Where(e => e.XPath.Equals(xpath)).FirstOrDefault();
if (searchMetadataNode != null)
metadataStructureModel.TitleNode =
searchMetadataNode.DisplayName;
xpath = XmlDatasetHelper.GetInformationPath(metadataStructure,
NameAttributeValues.description);
//check if xsd exist
string schemapath = Path.Combine(AppConfiguration.GetModuleWorkspacePath("DCM"), "Metadata",
metadataStructure.Name);
if (Directory.Exists(schemapath) && Directory.GetFiles(schemapath).Length > 0)
metadataStructureModel.HasSchema = true;
var firstOrDefault =
metadataStructureModel.MetadataNodes.Where(e => e.XPath.Equals(xpath)).FirstOrDefault();
if (firstOrDefault != null)
metadataStructureModel.DescriptionNode =
firstOrDefault.DisplayName;
metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructureModel.Id);
metadataStructureModel.Active = XmlDatasetHelper.IsActive(metadataStructure.Id);
}
catch(Exception exception)
{
metadataStructureModel = new MetadataStructureModel();
metadataStructureModel.Id = metadataStructure.Id;
metadataStructureModel.Name = metadataStructure.Name;
}
return metadataStructureModel;
}