public ActionResult Save(MetadataStructureModel metadataStructureModel) { MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); try { if (ModelState.IsValid) { MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(metadataStructureModel.Id); metadataStructure = updateMetadataStructure(metadataStructure, metadataStructureModel); metadataStructureManager.Update(metadataStructure); return(Json(true)); } return(Json(false)); } catch (Exception ex) { return(Json(ex.Message)); } finally { metadataStructureManager.Dispose(); } }
public ActionResult LoadMetadataStructureTab(long Id) { #region load Model DatasetManager datasetManager = new DatasetManager(); try { // retrieves all the dataset version IDs which are in the checked-in state datasetVersionIds = datasetManager.GetDatasetVersionLatestIds(); MetadataStructure metadataStructure = this.GetUnitOfWork().GetReadOnlyRepository <MetadataStructure>().Get(Id); MetadataStructureModel model = new MetadataStructureModel( metadataStructure.Id, metadataStructure.Name, metadataStructure.Description, getDatasetVersionsDic(metadataStructure, datasetVersionIds), IsExportAvailable(metadataStructure) ); #endregion return(PartialView("_metadataStructureView", model)); } finally { datasetManager.Dispose(); } }
public ActionResult Save(MetadataStructureModel metadataStructureModel) { MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); DatasetManager datasetManager = new DatasetManager(); try { if (ModelState.IsValid) { MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(metadataStructureModel.Id); metadataStructure = updateMetadataStructure(metadataStructure, metadataStructureModel); metadataStructureManager.Update(metadataStructure); //update dsv title and description if there is a change //ToDo check if there is a change in the xpaths // update datasetversion // get all datasetIds which using the metadata structure var datasetIds = datasetManager.DatasetRepo.Query().Where(d => d.MetadataStructure.Id.Equals(metadataStructure.Id)).Select(d => d.Id); if (datasetIds.Any()) { //get all datasetversions of the dataset ids var datasetVersionIds = datasetManager.DatasetVersionRepo.Query().Where(dsv => datasetIds.Contains(dsv.Dataset.Id)).Select(dsv => dsv.Id).ToList(); //load all titles & descriptions from versions var allTitles = xmlDatasetHelper.GetInformationFromVersions(datasetVersionIds, metadataStructure.Id, NameAttributeValues.title); var allDescriptions = xmlDatasetHelper.GetInformationFromVersions(datasetVersionIds, metadataStructure.Id, NameAttributeValues.description); // update each datasetversion foreach (var datasetVersionId in datasetVersionIds) { // load dataset version var datasetVersion = datasetManager.GetDatasetVersion(datasetVersionId); datasetVersion.Title = allTitles.ContainsKey(datasetVersion.Id) ? allTitles[datasetVersion.Id] : string.Empty; datasetVersion.Description = allDescriptions.ContainsKey(datasetVersion.Id) ? allDescriptions[datasetVersion.Id] : string.Empty; datasetManager.UpdateDatasetVersion(datasetVersion); } } return(Json(true)); } return(Json(false)); } catch (Exception ex) { return(Json(ex.Message)); } finally { metadataStructureManager.Dispose(); datasetManager.Dispose(); } }
public ActionResult Edit(long id) { MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); try { MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(id); MetadataStructureModel model = convertToMetadataStructureModel(metadataStructure, metadataStructureManager); return(PartialView("_editMetadataStructureView", model)); } finally { metadataStructureManager.Dispose(); } }
public ActionResult ConvertSelectedDatasetVersion(string Id, string SelectedDatasetIds) { #region load Model DatasetManager datasetManager = new DatasetManager(); try { datasetVersionIds = datasetManager.GetDatasetVersionLatestIds(); MetadataStructure metadataStructure = this.GetUnitOfWork().GetReadOnlyRepository <MetadataStructure>().Get(Convert.ToInt64(Id)); MetadataStructureModel model = new MetadataStructureModel( metadataStructure.Id, metadataStructure.Name, metadataStructure.Description, getDatasetVersionsDic(metadataStructure, datasetVersionIds), IsExportAvailable(metadataStructure) ); #endregion #region convert if (SelectedDatasetIds != null && SelectedDatasetIds != "") { string[] ids = SelectedDatasetIds.Split(','); foreach (string id in ids) { string path = Export(Convert.ToInt64(id)); model.AddMetadataPath(Convert.ToInt64(id), path); } } #endregion return(PartialView("_metadataStructureView", model)); } finally { datasetManager.Dispose(); } }
private MetadataStructure updateMetadataStructure(MetadataStructure metadataStructure, MetadataStructureModel metadataStructureModel) { if (metadataStructure.Id.Equals(metadataStructureModel.Id)) { metadataStructure.Name = metadataStructureModel.Name; XmlDocument xmlDocument = new XmlDocument(); if (metadataStructure.Extra != null) { if (metadataStructure.Extra as XmlDocument != null) { xmlDocument = metadataStructure.Extra as XmlDocument; } else { xmlDocument.AppendChild(metadataStructure.Extra); } } else { xmlDocument = new XmlDocument(); } metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructure.Id); //set title & description string titleXPath = metadataStructureModel.MetadataNodes .Where(e => e.DisplayName.Equals(metadataStructureModel.TitleNode)) .FirstOrDefault() .XPath; XmlNode tmp = null; try { tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.nodeRef.ToString(), AttributeNames.name.ToString(), NameAttributeValues.title.ToString()); tmp.Attributes[AttributeNames.value.ToString()].Value = titleXPath; } catch { xmlDocument = xmlDatasetHelper.AddReferenceToXml(xmlDocument, NameAttributeValues.title.ToString(), titleXPath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef"); } string descriptionXPath = metadataStructureModel.MetadataNodes .Where(e => e.DisplayName.Equals(metadataStructureModel.DescriptionNode)) .FirstOrDefault() .XPath; try { tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.nodeRef.ToString(), AttributeNames.name.ToString(), NameAttributeValues.description.ToString()); tmp.Attributes[AttributeNames.value.ToString()].Value = descriptionXPath; } catch { xmlDocument = xmlDatasetHelper.AddReferenceToXml(xmlDocument, NameAttributeValues.description.ToString(), descriptionXPath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef"); } //set entity tmp = XmlUtility.GetXmlNodeByName(xmlDocument.DocumentElement, nodeNames.entity.ToString()); if (tmp != null) { tmp.Attributes[AttributeNames.value.ToString()].Value = metadataStructureModel.Entity.ClassPath; tmp.Attributes[AttributeNames.name.ToString()].Value = metadataStructureModel.Entity.Name; } else { xmlDocument = xmlDatasetHelper.AddReferenceToXml(xmlDocument, nodeNames.entity.ToString(), metadataStructureModel.Entity.ClassPath, AttributeType.entity.ToString(), "extra/entity"); } //set active tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.parameter.ToString(), AttributeNames.name.ToString(), NameAttributeValues.active.ToString()); if (tmp != null) { tmp.Attributes[AttributeNames.value.ToString()].Value = metadataStructureModel.Active.ToString(); } else { xmlDocument = xmlDatasetHelper.AddReferenceToXml(xmlDocument, NameAttributeValues.active.ToString(), metadataStructureModel.Active.ToString(), AttributeType.parameter.ToString(), "extra/parameters/parameter"); } metadataStructure.Extra = xmlDocument; } return(metadataStructure); }
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); }
private MetadataStructure updateMetadataStructure(MetadataStructure metadataStructure, MetadataStructureModel metadataStructureModel) { if (metadataStructure.Id.Equals(metadataStructureModel.Id)) { metadataStructure.Name = metadataStructureModel.Name; if (metadataStructure.Extra != null) { XmlDocument xmlDocument = new XmlDocument(); if (metadataStructure.Extra as XmlDocument != null) xmlDocument = metadataStructure.Extra as XmlDocument; else { xmlDocument.AppendChild(metadataStructure.Extra); } metadataStructureModel.MetadataNodes = GetAllXPath(metadataStructure.Id); //set title & description string titleXPath = metadataStructureModel.MetadataNodes .Where(e => e.DisplayName.Equals(metadataStructureModel.TitleNode)) .FirstOrDefault() .XPath; XmlNode tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.nodeRef.ToString(), AttributeNames.name.ToString(), NameAttributeValues.title.ToString()); tmp.Attributes[AttributeNames.value.ToString()].Value = titleXPath; string descriptionXPath = metadataStructureModel.MetadataNodes .Where(e => e.DisplayName.Equals(metadataStructureModel.DescriptionNode)) .FirstOrDefault() .XPath; tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.nodeRef.ToString(), AttributeNames.name.ToString(), NameAttributeValues.description.ToString()); tmp.Attributes[AttributeNames.value.ToString()].Value = descriptionXPath; //set entity tmp = XmlUtility.GetXmlNodeByName(xmlDocument.DocumentElement, nodeNames.entity.ToString()); if (tmp != null) tmp.Attributes[AttributeNames.value.ToString()].Value = metadataStructureModel.Entity.ClassPath; else { xmlDocument = XmlDatasetHelper.AddReferenceToXml(xmlDocument, nodeNames.entity.ToString(), metadataStructureModel.Entity.ClassPath, AttributeType.entity.ToString(), "extra/entity"); } //set active tmp = XmlUtility.GetXmlNodeByAttribute(xmlDocument.DocumentElement, nodeNames.parameter.ToString(), AttributeNames.name.ToString(), NameAttributeValues.active.ToString()); if (tmp != null) tmp.Attributes[AttributeNames.value.ToString()].Value = metadataStructureModel.Active.ToString(); else { xmlDocument = XmlDatasetHelper.AddReferenceToXml(xmlDocument, NameAttributeValues.active.ToString(), metadataStructureModel.Active.ToString(), AttributeType.parameter.ToString(), "extra/parameters/parameter"); } metadataStructure.Extra = xmlDocument; } } return metadataStructure; }
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; }
public ActionResult Save(MetadataStructureModel metadataStructureModel) { if (ModelState.IsValid) { try { MetadataStructureManager metadataStructureManager = new MetadataStructureManager(); MetadataStructure metadataStructure = metadataStructureManager.Repo.Get(metadataStructureModel.Id); metadataStructure = updateMetadataStructure(metadataStructure, metadataStructureModel); metadataStructureManager.Update(metadataStructure); } catch (Exception ex) { return Json(ex.Message); } return Json(true); } return Json(false); }