/// <summary> /// Information in metadata is stored as xml /// get back the vale of an attribute /// e.g. title = "dataset title" /// /// </summary> /// <param name="datasetVersion"></param> /// <param name="name"></param> /// <returns></returns> public string GetInformationFromVersion(long datasetVersionId, long metadataStructureId, NameAttributeValues name) { using (var unitOfWork = this.GetUnitOfWork()) using (DatasetManager dm = new DatasetManager()) using (MetadataStructureManager msm = new MetadataStructureManager()) { if (datasetVersionId <= 0) { return(String.Empty); } if (metadataStructureId <= 0) { return(String.Empty); } MetadataStructure metadataStructure = msm.Repo.Get(metadataStructureId); if ((XmlDocument)metadataStructure.Extra == null) { return(string.Empty); } XDocument xDoc = XmlUtility.ToXDocument((XmlDocument)metadataStructure.Extra); XElement temp = XmlUtility.GetXElementByAttribute(nodeNames.nodeRef.ToString(), "name", name.ToString(), xDoc); string xpath = temp.Attribute("value").Value.ToString(); return(dm.GetMetadataValueFromDatasetVersion(datasetVersionId, xpath)); } }