public async Task <ActionResult> QueryResult(QueryInfo queryInfo) { if (queryInfo == null) { return(BadRequest()); } ViewData[nameof(SearchInfo)] = queryInfo; object results; try { /*** validation ***/ queryInfo.Validate(); /*** query preparation ***/ SparqlRemoteEndpoint endpoint = SearchPreparing.CreateEndpoint(queryInfo.Endpoints[0], queryInfo.Timeout, queryInfo.DefaultGraph); SparqlQuery query = QueryParsing.ParseQuery(queryInfo.QueryString); /*** query processing ***/ results = await QueryProcessing.ProcessQuery(query, endpoint); //ViewData["ExecutionTime"] = query.QueryExecutionTime; } catch (BrowserException e) { return(View("QueryResultError", e.Message)); } catch (Exception) { //TODO: better text return(View("QueryResultError", "Unknown error...")); } /*** result processing ***/ if (results is SparqlResultSet) { return(View("QueryResultSet", (SparqlResultSet)results)); } else if (results is IGraph) { return(View("QueryResultGraph", (IGraph)results)); } else if (results is AsyncError) { return(View("QueryResultError", ErrorProcessing.ProcessAsyncError((AsyncError)results))); } else { //TODO: better text return(View("QueryResultError", "Unknown error...")); } }