static CombinedAssetObject GetCombinedObjectFromXMLMetadata(string assetid, string status, metadataAsset item) { CombinedAssetObject results = new CombinedAssetObject(); results.ASSETID = assetid; results.STATUS = status; //If status NOT not_entitled then extract the extra data if (!status.Equals("not_entitled", StringComparison.InvariantCultureIgnoreCase)) { results.AU = GetAUFromXMLMetadata(item); results.CRS = GetCRSFromXMLMetadata(item); results.CST = GetCSTFromXMLMetadata(item); results.DES = GetDESFromXMLMetadata(item); results.ORT = GetORTFromXMLMetadata(item); results.LANGUAGE = item.language; results.DESCRIPTION = item.description; results.DURATION = item.duration; } return(results); }
/// <summary> /// Gets the combined object from metadata. /// </summary> /// <param name="assetid">The assetid.</param> /// <param name="status">The status.</param> /// <param name="navigator">The navigator.</param> /// <param name="aiccFolder">The aicc folder.</param> /// <returns></returns> /// TODO: NO Error Checking static CombinedAssetObject GetCombinedObject(string assetid, string status, XPathNavigator navigator, string aiccFolder) { CombinedAssetObject results = new CombinedAssetObject(); results.ASSETID = assetid; results.STATUS = status; //If status NOT not_entitled then extract the extra data if (!status.Equals("not_entitled", StringComparison.InvariantCultureIgnoreCase)) { //Get AICC first string baseFolder = string.Format("{0}\\{1}\\", aiccFolder, assetid); string aufile = string.Format("{0}\\{1}.AU", baseFolder, assetid); string crsfile = string.Format("{0}\\{1}.CRS", baseFolder, assetid); string cstfile = string.Format("{0}\\{1}.CST", baseFolder, assetid); string desfile = string.Format("{0}\\{1}.DES", baseFolder, assetid); string ortfile = string.Format("{0}\\{1}.ORT", baseFolder, assetid); log.InfoFormat("Populating the CombinedAssetObject by loading content of each AICC file as a string. Base Filename: {0}\\{1}.*", baseFolder, assetid); log.DebugFormat("Reading AU File: {0}", aufile); results.AU = System.IO.File.ReadAllText(aufile); log.DebugFormat("Reading CRS File: {0}", crsfile); results.CRS = System.IO.File.ReadAllText(crsfile); log.DebugFormat("Reading CST File: {0}", cstfile); results.CST = System.IO.File.ReadAllText(cstfile); log.DebugFormat("Reading DES File: {0}", desfile); results.DES = System.IO.File.ReadAllText(desfile); log.DebugFormat("Reading ORT File: {0}", ortfile); results.ORT = System.IO.File.ReadAllText(ortfile); //Read the XML XmlNamespaceManager nsmgr = new XmlNamespaceManager(navigator.NameTable); nsmgr.AddNamespace("olsa", "http://www.skillsoft.com/services/olsa_v1_0/"); nsmgr.AddNamespace("dc", "http://purl.org/dc/elements/1.1/"); string xpath = "//olsa:asset/dc:identifier[text()='" + assetid + "']/parent::*"; log.InfoFormat("Populating the CombinedAssetObject by reading the elements from XML. xpath: {0}", xpath); var node = navigator.SelectSingleNode(xpath, nsmgr); log.DebugFormat("Select Language using xPath at the Node: {0}", "dc:language"); results.LANGUAGE = node.SelectSingleNode("dc:language", nsmgr) == null ? "" : node.SelectSingleNode("dc:language", nsmgr).Value; log.DebugFormat("Select Description using xPath at the Node: {0}", "dc:description"); results.DESCRIPTION = node.SelectSingleNode("dc:description", nsmgr) == null ? "" : node.SelectSingleNode("dc:description", nsmgr).Value; log.DebugFormat("Select Duration using xPath at the Node: {0}", "olsa:duration"); results.DURATION = node.SelectSingleNode("olsa:duration", nsmgr) == null ? "" : node.SelectSingleNode("olsa:duration", nsmgr).Value; log.DebugFormat("Select imageurl using xPath at the Node: {0}", "extendedfieldValues/fieldValue[@id=\"imageurl\"]/value"); results.IMAGEURL = node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"imageurl\"]/value", nsmgr) == null ? "" : node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"imageurl\"]/value", nsmgr).Value; log.DebugFormat("Select mobilestatus using xPath at the Node: {0}", "extendedfieldValues/fieldValue[@id=\"mobilestatus\"]/value"); results.MOBILESTATUS = node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"mobilestatus\"]/value", nsmgr) == null ? "" : node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"mobilestatus\"]/value", nsmgr).Value; log.DebugFormat("Select keywords using xPath at the Node: {0}", "extendedfieldValues/fieldValue[@id=\"keywords\"]/value"); var keywords = node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"keywords\"]/value", nsmgr) == null ? "" : node.SelectSingleNode("extendedfieldValues/fieldValue[@id=\"keywords\"]/value", nsmgr).Value; if (!string.IsNullOrEmpty(keywords)) { results.KEYWORDS = keywords.Split(';').ToList(); } } return(results); }