/// <summary> /// Handle a metadata query request /// </summary> internal static async Task HandleMetadataListRequest( MetadataQueryParams metadataParams, RequestContext <MetadataQueryResult> requestContext) { try { ConnectionInfo connInfo; MetadataService.ConnectionServiceInstance.TryFindConnection( metadataParams.OwnerUri, out connInfo); var metadata = new List <ObjectMetadata>(); if (connInfo != null) { using (SqlConnection sqlConn = OpenMetadataConnection(connInfo)) { ReadMetadata(sqlConn, metadata); } } await requestContext.SendResult(new MetadataQueryResult { Metadata = metadata.ToArray() }); } catch (Exception ex) { await requestContext.SendError(ex.ToString()); } }
/// <summary> /// Handle a metadata query request /// </summary> internal async Task HandleMetadataListRequest( MetadataQueryParams metadataParams, RequestContext <MetadataQueryResult> requestContext) { try { Func <Task> requestHandler = async() => { ConnectionInfo connInfo; MetadataService.ConnectionServiceInstance.TryFindConnection( metadataParams.OwnerUri, out connInfo); var metadata = new List <ObjectMetadata>(); if (connInfo != null) { using (SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Metadata")) { ReadMetadata(sqlConn, metadata); } } await requestContext.SendResult(new MetadataQueryResult { Metadata = metadata.ToArray() }); }; Task task = Task.Run(async() => await requestHandler()).ContinueWithOnFaulted(async t => { await requestContext.SendError(t.Exception.ToString()); }); MetadataListTask = task; } catch (Exception ex) { await requestContext.SendError(ex.ToString()); } }