Пример #1
0
        /// <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());
            }
        }
Пример #2
0
        /// <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());
            }
        }