//Get a Competency Framework description set public static CTDLAPICompetencyFrameworkResultSet GetCompetencyFrameworkDescriptionSet(string ctid) { var queryData = new JObject() { { "@type", "ceterms:CompetencyFramework" }, { "ceterms:ctid", ctid } }; var clientIP = "unknown"; try { clientIP = HttpContext.Current.Request.UserHostAddress; } catch { } var resultData = DoQuery(queryData, 0, 1, "", true, "https://credentialfinder.org/Finder/SearchViaRegistry/", clientIP, "CompetencyFramework"); var resultSet = new CTDLAPICompetencyFrameworkResultSet() { Results = ParseResults <CTDLAPICompetencyFrameworkResult>(resultData.data), RelatedItems = resultData.extra.RelatedItems, TotalResults = resultData.extra.TotalResults }; return(resultSet); }
// //Use the Credential Registry to search for competency frameworks public static CTDLAPICompetencyFrameworkResultSet SearchViaRegistry(MainSearchInput data, bool asDescriptionSet = false) { //Handle blind searches if (string.IsNullOrWhiteSpace(data.Keywords)) { data.Keywords = "search:anyValue"; } var queryData = new JObject() { //Get competency frameworks... { "@type", "ceasn:CompetencyFramework" }, { "search:termGroup", new JObject() { //Where name or description or CTID matches the keywords, or... { "ceasn:name", data.Keywords }, { "ceasn:description", data.Keywords }, { "ceterms:ctid", data.Keywords }, //Where the framework contains a competency (via reverse connection) with competency text that contains the keywords { "ceasn:isPartOf", new JObject() { { "ceasn:competencyText", data.Keywords }, { "ceterms:ctid", data.Keywords }, { "search:operator", "search:orTerms" } } }, //Or where the creator or publisher have a name or CTID that matches the keywords { "ceasn:creator", new JObject() { { "ceterms:name", data.Keywords }, { "ceterms:ctid", data.Keywords }, { "search:operator", "search:orTerms" } } }, { "ceasn:publisher", new JObject() { { "ceterms:name", data.Keywords }, { "ceterms:ctid", data.Keywords }, { "search:operator", "search:orTerms" } } }, { "search:operator", "search:orTerms" } } } }; var skip = data.PageSize * (data.StartPage - 1); var take = data.PageSize; var clientIP = "unknown"; try { clientIP = HttpContext.Current.Request.UserHostAddress; } catch { } var orderBy = ""; var orderDescending = true; TranslateSortOrder(data.SortOrder, ref orderBy, ref orderDescending); var resultData = DoQuery(queryData, skip, take, orderBy, orderDescending, "https://credentialfinder.org/Finder/SearchViaRegistry/", clientIP, asDescriptionSet ? "CompetencyFramework" : ""); if (resultData.valid) { var resultSet = new CTDLAPICompetencyFrameworkResultSet() { Results = ParseResults <CTDLAPICompetencyFrameworkResult>(resultData.data), RelatedItems = resultData.extra.RelatedItems, TotalResults = resultData.extra.TotalResults, }; try { var cacheSuccess = false; var cacheident = ""; resultSet.PerResultRelatedItems = GetRelatedItemsForResults(resultData.data, resultData.extra.RelatedItems, data.Keywords == "search:anyValue", ref cacheSuccess, ref cacheident); resultSet.Debug = new JObject() { { "Keywords", data.Keywords }, { "Use Cache", data.Keywords == "search:anyValue" }, { "Cache Succss", cacheSuccess }, { "Cache ID", cacheident } }; } catch (Exception ex) { resultSet.PerResultRelatedItems = new List <CTDLAPICompetencyFrameworkRelatedItemSetForSearchResult>() { new CTDLAPICompetencyFrameworkRelatedItemSetForSearchResult() { Competencies = new CTDLAPIRelatedItemForSearchResult() { Label = "Error loading competencies: " + ex.Message, Samples = new List <JObject>() { JObject.FromObject(ex) } } } }; } return(resultSet); } else { var list = new List <CTDLAPICompetencyFrameworkResult>(); var result = new CTDLAPICompetencyFrameworkResult() { Name = new LanguageMap("Error encountered"), Description = string.IsNullOrWhiteSpace(resultData.status) ? new LanguageMap("Sorry no useable message was returned.") : new LanguageMap(resultData.status) }; list.Add(result); return(new CTDLAPICompetencyFrameworkResultSet() { Results = list, RelatedItems = null, TotalResults = 0 }); } }