Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }