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 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(); } }
/// <summary> /// </summary> /// <param name="id"></param> /// <param name="titlePath"></param> /// <param name="descriptionPath"></param> /// <param name="mappingFilePath"></param> /// <param name="direction"></param> private void StoreParametersToMetadataStruture(long id, string titlePath, string descriptionPath, string entity, string mappingFilePathImport, string mappingFilePathExport) { MetadataStructureManager mdsManager = new MetadataStructureManager(); EntityManager entityManager = new EntityManager(); try { MetadataStructure metadataStructure = this.GetUnitOfWork().GetReadOnlyRepository <MetadataStructure>().Get(id); XmlDocument xmlDoc = new XmlDocument(); if (metadataStructure.Extra != null) { xmlDoc = (XmlDocument)metadataStructure.Extra; } // add title Node xmlDoc = AddReferenceToMetadatStructure("title", titlePath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef", xmlDoc); // add Description xmlDoc = AddReferenceToMetadatStructure("description", descriptionPath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef", xmlDoc); if (entityManager.EntityRepository.Get().Any(e => { return(e.Name != null && e.Name.Equals(entity)); })) { Entity e = entityManager.EntityRepository.Get().FirstOrDefault(x => x.Name != null && x.Name.Equals(entity)); if (e != null) { xmlDoc = AddReferenceToMetadatStructure(e.Name, e.EntityType.FullName, AttributeType.entity.ToString(), "extra/entity", xmlDoc); } } // add mappingFilePath xmlDoc = AddReferenceToMetadatStructure(metadataStructure.Name, mappingFilePathImport, "mappingFileImport", "extra/convertReferences/convertRef", xmlDoc); xmlDoc = AddReferenceToMetadatStructure(metadataStructure.Name, mappingFilePathExport, "mappingFileExport", "extra/convertReferences/convertRef", xmlDoc); //set active xmlDoc = AddReferenceToMetadatStructure(NameAttributeValues.active.ToString(), true.ToString(), AttributeType.parameter.ToString(), "extra/parameters/parameter", xmlDoc); metadataStructure.Extra = xmlDoc; mdsManager.Update(metadataStructure); } finally { mdsManager.Dispose(); entityManager.Dispose(); } }
/// <summary> /// </summary> /// <param name="id"></param> /// <param name="titlePath"></param> /// <param name="descriptionPath"></param> /// <param name="mappingFilePath"></param> /// <param name="direction"></param> private void StoreParametersToMetadataStruture(long id, string titlePath, string descriptionPath,string entity, string mappingFilePathImport, string mappingFilePathExport) { MetadataStructureManager mdsManager = new MetadataStructureManager(); MetadataStructure metadataStructure = mdsManager.Repo.Get(id); XmlDocument xmlDoc = new XmlDocument(); if (metadataStructure.Extra != null) { xmlDoc = (XmlDocument)metadataStructure.Extra; } // add title Node xmlDoc = AddReferenceToMetadatStructure("title", titlePath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef", xmlDoc); // add Description xmlDoc = AddReferenceToMetadatStructure("description", descriptionPath, AttributeType.xpath.ToString(), "extra/nodeReferences/nodeRef", xmlDoc); xmlDoc = AddReferenceToMetadatStructure("entity", entity, AttributeType.entity.ToString(), "extra/entity", xmlDoc); // add mappingFilePath xmlDoc = AddReferenceToMetadatStructure(metadataStructure.Name, mappingFilePathImport, "mappingFileImport", "extra/convertReferences/convertRef", xmlDoc); xmlDoc = AddReferenceToMetadatStructure(metadataStructure.Name, mappingFilePathExport, "mappingFileExport", "extra/convertReferences/convertRef", xmlDoc); //set active xmlDoc = AddReferenceToMetadatStructure(NameAttributeValues.active.ToString(), true.ToString(), AttributeType.parameter.ToString(), "extra/parameters/parameter", xmlDoc); metadataStructure.Extra = xmlDoc; mdsManager.Update(metadataStructure); }
// 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; }
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); }