示例#1
0
        /// <summary>
        /// Get a single row from the table by primary key.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public GetRowResponse GetRow(GetRowRequest request)
        {
            var uriStr   = $"{GetEndPoint(NoSQLServices.Tables, this.Region)}/{request.TableNameOrId}/rows";
            var optional = request.GetOptionalQuery();

            if (!string.IsNullOrEmpty(optional))
            {
                uriStr = $"{uriStr}?{optional}";
            }
            var uri = new Uri(uriStr);

            var httpRequestHeaderParam = new HttpRequestHeaderParam()
            {
                OpcRequestId = request.OpcRequestId
            };

            using (var webResponse = this.RestClient.Get(uri, httpRequestHeaderParam))
                using (var stream = webResponse.GetResponseStream())
                    using (var reader = new StreamReader(stream))
                    {
                        var response = reader.ReadToEnd();

                        return(new GetRowResponse()
                        {
                            Row = this.JsonSerializer.Deserialize <RowDetails>(response),
                            OpcRequestId = webResponse.Headers.Get("opc-request-id"),
                            Etag = webResponse.Headers.Get("opc-request-id")
                        });
                    }
        }