static string GetCRSFromXMLMetadata(metadataAsset item, int maxDescription = 4096) { //Do checks string CRSTEMPLATE = "[Course]\r\n"; CRSTEMPLATE += "Course_Creator=SkillSoft\r\n"; CRSTEMPLATE += "Course_System=SkillSoft Development\r\n"; CRSTEMPLATE += "Course_Title={0}\r\n"; CRSTEMPLATE += "Course_ID={1}\r\n"; CRSTEMPLATE += "Level=1\r\n"; CRSTEMPLATE += "Max_Fields_CST=2\r\n"; CRSTEMPLATE += "Total_AUs=1\r\n"; CRSTEMPLATE += "Total_Blocks=0\r\n"; CRSTEMPLATE += "Version=2.2\r\n"; CRSTEMPLATE += "[Course_Behavior]\r\n"; CRSTEMPLATE += "Max_Normal=99\r\n"; CRSTEMPLATE += "[Course_Description]\r\n"; CRSTEMPLATE += "{2}\r\n"; //{0} =title //{1} = id //{2} = description string result = String.Format(CRSTEMPLATE, item.title.Length > 255 ? item.title.Substring(0, 255) : item.title, item.identifier, item.description.Length > maxDescription ? item.description.Substring(0, maxDescription) : item.description); return(result); }
static string GetAUFromXMLMetadata(metadataAsset item, string defaultMasteryValue = "80") { //Do checks //Check for AICC URL var launchUrl = item.launchurl.Where(i => i.launchtype == "aicc").FirstOrDefault(); if (launchUrl == null) { throw new ArgumentNullException("AICC launchUrl missing for asset"); } //Check for mastery var mastery = item.extendedfieldValues.Where(i => i.id == "masteryscore").FirstOrDefault(); if (mastery == null || String.IsNullOrEmpty(mastery.value)) { mastery = new metadataAssetFieldValue() { id = "masteryscore", value = defaultMasteryValue }; } string AUTEMPLATE = "\"system_id\",\"type\",\"command_line\",\"Max_Time_Allowed\",\"time_limit_action\",\"file_name\",\"max_score\",\"mastery_score\",\"system_vendor\",\"core_vendor\",\"Web_Launch\",\"au_Password\""; AUTEMPLATE += "\r\n\"A0\",\"Course\",\"\",\"\",\"\",\"{0}\",\"\",\"{1}\",\"Skillsoft\",\"\",\"\",\"\""; //{0} = file_name //{1} = mastery string result = String.Format(AUTEMPLATE, WebUtility.UrlDecode(launchUrl.Value), mastery.value); return(result); }
static string GetORTFromXMLMetadata(metadataAsset item) { //Do checks string ORTTEMPLATE = "\"Course_Element\"\r\n"; ORTTEMPLATE += "\"A0\"\r\n"; return(ORTTEMPLATE); }
static string GetCSTFromXMLMetadata(metadataAsset item) { //Do checks string CSTTEMPLATE = "\"block\",\"member\"\r\n"; CSTTEMPLATE += "\"root\",\"A0\"\r\n"; return(CSTTEMPLATE); }
static string GetDESFromXMLMetadata(metadataAsset item, int maxDescription = 4096) { //Do checks string DESTEMPLATE = "\"system_id\",\"developer_id\",\"title\",\"description\"\r\n"; DESTEMPLATE += "\"A0\",\"{0}\",\"{1}\",\"{2}\"\r\n"; //{0} =id //{1} =title //{2} =description string result = String.Format(DESTEMPLATE, item.identifier, item.title.Length > 255 ? item.title.Substring(0, 255) : item.title, item.description.Length > maxDescription ? item.description.Substring(0, maxDescription) : item.description); return(result); }
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); }