BExIS.Web.Shell.Areas.DCM.Controllers.ManageMetadataStructureController.convertToMetadataStructureModel C# (CSharp) Method

convertToMetadataStructureModel() private method

private convertToMetadataStructureModel ( MetadataStructure metadataStructure ) : MetadataStructureModel
metadataStructure BExIS.Dlm.Entities.MetadataStructure.MetadataStructure
return MetadataStructureModel
        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;
        }