//copy of BExIS.Modules.Ddm.UI.Controllers.DataController.Show (unchanged) public ActionResult Show(long id, long version = 0) { //get the researchobject (cuurently called dataset) to get the id of a metadata structure Dataset researcobject = this.GetUnitOfWork().GetReadOnlyRepository <Dataset>().Get(id); long metadataStrutcureId = researcobject.MetadataStructure.Id; using (MetadataStructureManager metadataStructureManager = new MetadataStructureManager()) { string entityName = xmlDatasetHelper.GetEntityNameFromMetadatStructure(metadataStrutcureId, metadataStructureManager); string entityType = xmlDatasetHelper.GetEntityTypeFromMetadatStructure(metadataStrutcureId, metadataStructureManager); //ToDo in the entity table there must be the information using (EntityManager entityManager = new EntityManager()) { var entity = entityManager.Entities.Where(e => e.Name.Equals(entityName)).FirstOrDefault(); string moduleId = ""; Tuple <string, string, string> action = null; string defaultAction = "ShowData"; if (entity != null && entity.Extra != null) { var node = entity.Extra.SelectSingleNode("extra/modules/module"); if (node != null) { moduleId = node.Attributes["value"].Value; } string modus = "show"; action = EntityViewerHelper.GetEntityViewAction(entityName, moduleId, modus); } if (action == null) { RedirectToAction(defaultAction, new { id, version }); } try { if (version == 0) { return(RedirectToAction(action.Item3, action.Item2, new { area = action.Item1, id })); } else { return(RedirectToAction(action.Item3, action.Item2, new { area = action.Item1, id, version })); } } catch { return(RedirectToAction(defaultAction, new { id, version })); } } } }
private MetadataStructureModel convertToMetadataStructureModel(MetadataStructure metadataStructure, MetadataStructureManager metadataStructureManager) { 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 EntityClassName = xmlDatasetHelper.GetEntityNameFromMetadatStructure(metadataStructure.Id, metadataStructureManager); var entityModel = metadataStructureModel.EntityClasses.Where(e => e.Name.Equals(EntityClassName)) .FirstOrDefault(); if (entityModel != null) { metadataStructureModel.Entity = entityModel; } string xpath = xmlDatasetHelper.GetInformationPath(metadataStructure.Id, NameAttributeValues.title); var searchMetadataNode = metadataStructureModel.MetadataNodes.Where(e => e.XPath.Equals(xpath)).FirstOrDefault(); if (searchMetadataNode != null) { metadataStructureModel.TitleNode = searchMetadataNode.DisplayName; } xpath = xmlDatasetHelper.GetInformationPath(metadataStructure.Id, 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); }