예제 #1
0
        /// <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));
                    }
        }