public async Task <IActionResult> GetResources([FromQuery] QueryStringParameters queryStringParametersDto) { Parameters parameters = _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString); string?query = _sparqlFactoryService.GetFinalQuery( _endpointService.GetEntryResourceQuery(parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph), parameters); if (query != null) { var sparqlResults = await _endpointService.ExecuteSelectSparqlQueryAsync(parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph, query); if (sparqlResults != null) { CurieVm curiesVm = _resultFormatterService.FormatSparqlResultToCurieList(sparqlResults); return(Ok(curiesVm)); } } return(NotFound(new CustomErrorVm() { CustomErrorMessage = $"No results were found! Check endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}.", GeneratedQuery = query })); }
public async Task <IActionResult> GetConcreteClass([FromQuery] QueryStringParameters queryStringParametersDto) { Parameters parameters = _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString); string?query = _sparqlFactoryService.GetFinalSelectQueryForClass(parameters); if (query != null) { var sparqlResults = await _endpointService.ExecuteSelectSparqlQueryAsync(parameters.RouteParameters.Endpoint, parameters.RouteParameters.Graph, query); if (sparqlResults != null) { CurieVm curiesVm = _resultFormatterService.FormatSparqlResultToCurieList(sparqlResults); return(Ok(curiesVm)); } } return(NotFound(new CustomErrorVm() { CustomErrorMessage = "No results were found!", GeneratedQuery = query })); }
public CurieVm FormatSparqlResultToCurieList(IEnumerable <SparqlResult> sparqlResults) { CurieVm curieVm = new CurieVm(); foreach (var sparqlResult in sparqlResults) { string key = sparqlResult.FirstOrDefault().Key; string value = sparqlResult.Value(key).ToString(); if (!_namespaceFactoryService.GetQnameFromAbsoluteUri(value, out var qname)) { continue; } curieVm.Curies.Add(HttpUtility.UrlDecode(qname)); } return(curieVm); }