|
@@ -17,6 +17,7 @@ using TEAMModelOS.SDK.Extension;
|
|
|
using TEAMModelOS.SDK.Models;
|
|
|
using TEAMModelOS.SDK.Models.Cosmos.OpenEntity;
|
|
|
using Microsoft.Azure.Cosmos;
|
|
|
+using TEAMModelOS.Models.Dto;
|
|
|
|
|
|
|
|
|
namespace TEAMModelOS.SDK.DI
|
|
@@ -244,14 +245,19 @@ namespace TEAMModelOS.SDK.DI
|
|
|
while (items.HasMoreResults)
|
|
|
{
|
|
|
ResponseMessage response = await items.ReadNextAsync();
|
|
|
- if (response.IsSuccessStatusCode)
|
|
|
+ if (response.Content!=null)
|
|
|
{
|
|
|
yield return response;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
+ //ResponseMessage response = await items.ReadNextAsync();
|
|
|
+ //if (response.IsSuccessStatusCode)
|
|
|
+ //{
|
|
|
+ // yield return response;
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // break;
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
public static async IAsyncEnumerable<ResponseMessage> GetItemQueryStreamIteratorQuery(this Container container, QueryDefinition queryDefinition,QueryRequestOptions requestOptions = null, string continuationToken = null)
|
|
@@ -262,59 +268,99 @@ namespace TEAMModelOS.SDK.DI
|
|
|
while (items.HasMoreResults)
|
|
|
{
|
|
|
ResponseMessage response = await items.ReadNextAsync();
|
|
|
- if (response.IsSuccessStatusCode)
|
|
|
+ if (response.Content!=null)
|
|
|
{
|
|
|
yield return response;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- break;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+ //ResponseMessage response = await items.ReadNextAsync();
|
|
|
+ //if (response.IsSuccessStatusCode)
|
|
|
+ //{
|
|
|
+ // yield return response;
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // break;
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public static async IAsyncEnumerable<T> GetItemQueryIteratorQuery<T>(this Container container, QueryDefinition queryDefinition, QueryRequestOptions requestOptions = null, string continuationToken = null)
|
|
|
{
|
|
|
- var items = container.GetItemQueryIterator<T>(
|
|
|
+ var items = container.GetItemQueryStreamIterator(
|
|
|
queryDefinition: queryDefinition, continuationToken: continuationToken,
|
|
|
requestOptions: requestOptions);
|
|
|
while (items.HasMoreResults)
|
|
|
{
|
|
|
- FeedResponse<T> response = await items.ReadNextAsync();
|
|
|
- if (response.Any())
|
|
|
+ var response = await items.ReadNextAsync();
|
|
|
+ if (response.Content!=null)
|
|
|
{
|
|
|
- foreach (var rs in response)
|
|
|
+ using var json = await JsonDocument.ParseAsync(response.Content);
|
|
|
+
|
|
|
+ if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
|
|
|
{
|
|
|
- yield return rs;
|
|
|
+ foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ {
|
|
|
+ yield return obj.ToObject<T>();
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- yield break;
|
|
|
- }
|
|
|
+
|
|
|
+ //FeedResponse<T> response = await items.ReadNextAsync();
|
|
|
+ //if (response.Any())
|
|
|
+ //{
|
|
|
+ // foreach (var rs in response)
|
|
|
+ // {
|
|
|
+ // yield return rs;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // yield break;
|
|
|
+ //}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
public static async IAsyncEnumerable<T> GetItemQueryIteratorSql<T>(this Container container, string queryText, QueryRequestOptions requestOptions = null, string continuationToken = null)
|
|
|
{
|
|
|
- var items = container.GetItemQueryIterator<T>(
|
|
|
+ var items = container.GetItemQueryStreamIterator(
|
|
|
queryText: queryText, continuationToken: continuationToken,
|
|
|
requestOptions: requestOptions);
|
|
|
|
|
|
while (items.HasMoreResults)
|
|
|
{
|
|
|
- FeedResponse<T> response = await items.ReadNextAsync();
|
|
|
- if (response.Any())
|
|
|
+
|
|
|
+ var response = await items.ReadNextAsync();
|
|
|
+ if (response.Content!=null)
|
|
|
{
|
|
|
- foreach (var rs in response)
|
|
|
+ using var json = await JsonDocument.ParseAsync(response.Content);
|
|
|
+
|
|
|
+ if (json.RootElement.TryGetProperty("_count", out JsonElement count) && count.GetUInt16() > 0)
|
|
|
{
|
|
|
- yield return rs;
|
|
|
+ foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
|
|
|
+ {
|
|
|
+ yield return obj.ToObject<T>();
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- yield break;
|
|
|
- }
|
|
|
+
|
|
|
+ //FeedResponse<T> response = await items.ReadNextAsync();
|
|
|
+ //if (response.Any())
|
|
|
+ //{
|
|
|
+ // foreach (var rs in response)
|
|
|
+ // {
|
|
|
+ // yield return rs;
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // yield break;
|
|
|
+ //}
|
|
|
}
|
|
|
}
|
|
|
}
|