//using Azure;
//using Azure.Cosmos;
//using System;
//using System.Collections.Generic;
//using System.Diagnostics;
//using System.IO;
//using System.Linq;
//using System.Text;
//using System.Text.Json;
//using System.Threading.Tasks;
//using TEAMModelOS.SDK.Context.Exception;
//using TEAMModelOS.SDK.Models;
//namespace TEAMModelOS.SDK.DI.AzureCosmos.Inner
//{
// public static class AzureCosmosExOld
// {
// ///
// /// 缓存前缀
// ///
// private const string CacheCosmosPrefix = "cosmos:";
// ///
// /// ttl时长 1秒
// ///
// private const int ttl = 1;
// ///
// /// 分页大小
// ///
// private const int pageSize = 200;
// ///
// /// 超时时间
// ///
// private const int timeoutSeconds = 86400;
// // TODO 此区需移除或优化
// #region 此区需移除或优化
// public static async Task SaveOrUpdate(this AzureCosmosFactory azureCosmosFactory, T entity) where T : CosmosEntity
// {
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// entity.pk = container.type.Name;
// ItemResponse response = await container.container.UpsertItemAsync(item: entity);
// if (container.cache && RedisHelper.Instance != null)
// {
// if (!RedisHelper.Exists(CacheCosmosPrefix + container.container.Id))
// {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, entity.id, entity);
// }
// else
// {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, entity.id, entity);
// await RedisHelper.ExpireAsync(CacheCosmosPrefix + container.container.Id, timeoutSeconds);
// }
// }
// return response.Value;
// }
// public static async Task> SaveOrUpdateAll(this AzureCosmosFactory azureCosmosFactory, List enyites) where T : CosmosEntity
// {
// Type type = typeof(T);
// int pages = (int)Math.Ceiling((double)enyites.Count / pageSize);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// bool flag = false;
// if (RedisHelper.Exists(CacheCosmosPrefix + container.container.Id))
// {
// flag = true;
// }
// string partitionKey = AzureCosmosUtil.GetPartitionKey(type);
// Stopwatch stopwatch = Stopwatch.StartNew();
// for (int i = 0; i < pages; i++)
// {
// List lists = enyites.Skip((i) * pageSize).Take(pageSize).ToList();
// List> itemsToInsert = new List>();
// lists.ForEach(async x =>
// {
// x.pk = type.Name;
// MemoryStream stream = new MemoryStream();
// await JsonSerializer.SerializeAsync(stream, x, new JsonSerializerOptions { IgnoreNullValues = true });
// object o = type.GetProperty(partitionKey).GetValue(x, null);
// KeyValuePair keyValue = new KeyValuePair(new PartitionKey(o.ToString()), stream);
// itemsToInsert.Add(keyValue);
// });
// List tasks = new List(lists.Count);
// itemsToInsert.ForEach(item =>
// {
// tasks.Add(container.container.UpsertItemStreamAsync(item.Value, item.Key)
// .ContinueWith((Task task) =>
// {
// }
// ));
// });
// await Task.WhenAll(tasks);
// if (container.cache && RedisHelper.Instance != null)
// {
// lists.ForEach(async x => {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, x.id, x);
// });
// }
// }
// if (container.cache && RedisHelper.Instance != null && !flag)
// {
// await RedisHelper.ExpireAsync(CacheCosmosPrefix + container.container.Id, timeoutSeconds);
// }
// stopwatch.Stop();
// return enyites;
// }
// public static async Task> FindCountByDict(this AzureCosmosFactory azureCosmosFactory, Dictionary dict)
// {
// Type type = typeof(T);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// string pk = type.Name;
// StringBuilder sql = new StringBuilder("select value count(c) from c");
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql, pk);
// if (cosmosDbQuery == null)
// {
// return new List { 0 };
// }
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// AsyncPageable query = container.container.GetItemQueryIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
// return await ResultsFromFeedIterator(query);
// }
// public static async Task> FindCountByDict(this AzureCosmosFactory azureCosmosFactory, string CollectionName, Dictionary dict)
// {
// if (azureCosmosFactory.CosmosDict.typeCosmos.TryGetValue(CollectionName, out AzureCosmosModel container))
// {
// string pk = container.type.Name;
// dict.Remove("@CURRPAGE");
// dict.Remove("@PAGESIZE");
// dict.Remove("@ASC");
// dict.Remove("@DESC");
// StringBuilder sql = new StringBuilder("select value count(c) from c");
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql, pk);
// if (cosmosDbQuery == null)
// {
// return new List { 0 };
// }
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// AsyncPageable query = container.container.GetItemQueryIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
// return await ResultsFromFeedIterator(query);
// }
// else
// {
// throw new BizException("CollectionName named:" + CollectionName + " dose not exsit in Database!");
// }
// }
// public static async Task> FindCountByDict(this AzureCosmosFactory azureCosmosFactory, string CollectionName, JsonElement json)
// {
// if (azureCosmosFactory.CosmosDict.typeCosmos.TryGetValue(CollectionName, out AzureCosmosModel container))
// {
// Dictionary dict = new Dictionary();
// var emobj = json.EnumerateObject();
// while (emobj.MoveNext())
// {
// if (emobj.Current.Name != "@CURRPAGE" ||
// emobj.Current.Name != "@PAGESIZE" ||
// emobj.Current.Name != "@ASC" ||
// emobj.Current.Name != "@DESC")
// {
// dict[emobj.Current.Name] = emobj.Current.Value;
// }
// }
// string pk = container.type.Name;
// StringBuilder sql = new StringBuilder("select value count(c) from c");
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql, pk);
// if (cosmosDbQuery == null)
// {
// return new List { 0 };
// }
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// AsyncPageable query = container.container.GetItemQueryIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
// return await ResultsFromFeedIterator(query);
// }
// else
// {
// throw new BizException("CollectionName named:" + CollectionName + " dose not exsit in Database!");
// }
// }
// public static async Task Update(this AzureCosmosFactory azureCosmosFactory, T entity) where T : CosmosEntity
// {
// Type type = typeof(T);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// string partitionKey = AzureCosmosUtil.GetPartitionKey(type);
// entity.pk = type.Name;
// object o = type.GetProperty(partitionKey).GetValue(entity, null);
// ItemResponse response = await container.container.ReplaceItemAsync(entity, entity.id, new PartitionKey(o.ToString()));
// if (container.cache && RedisHelper.Instance != null)
// {
// if (!RedisHelper.Exists(CacheCosmosPrefix + container.container.Id))
// {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, entity.id, entity);
// }
// else
// {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, entity.id, entity);
// await RedisHelper.ExpireAsync(CacheCosmosPrefix + container.container.Id, timeoutSeconds);
// }
// }
// return response.Value;
// }
// internal class Item
// {
// public string id { get; set; }
// public string pk { get; set; }
// public MemoryStream stream { get; set; }
// }
// public static async Task> UpdateAll(this AzureCosmosFactory azureCosmosFactory, List enyites) where T : CosmosEntity
// {
// //await Task.Run(() => Parallel.ForEach(entities, new ParallelOptions { MaxDegreeOfParallelism = 2 }, (item) =>
// //{
// // Task.WaitAll(Update(item));
// //}));
// Type type = typeof(T);
// int pages = (int)Math.Ceiling((double)enyites.Count / pageSize);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// bool flag = false;
// if (RedisHelper.Exists(CacheCosmosPrefix + container.container.Id))
// {
// flag = true;
// }
// string partitionKey = AzureCosmosUtil.GetPartitionKey(type);
// Stopwatch stopwatch = Stopwatch.StartNew();
// for (int i = 0; i < pages; i++)
// {
// List lists = enyites.Skip((i) * pageSize).Take(pageSize).ToList();
// List- itemsToInsert = new List
- ();
// lists.ForEach(async x =>
// {
// x.pk = type.Name;
// MemoryStream stream = new MemoryStream();
// await JsonSerializer.SerializeAsync(stream, x, new JsonSerializerOptions { IgnoreNullValues = true });
// object o = type.GetProperty(partitionKey).GetValue(x, null);
// Item keyValue = new Item { id = x.id, pk = o.ToString(), stream = stream };
// itemsToInsert.Add(keyValue);
// });
// List tasks = new List(lists.Count);
// itemsToInsert.ForEach(item =>
// {
// tasks.Add(container.container.ReplaceItemStreamAsync(item.stream, item.id, new PartitionKey(item.pk))
// .ContinueWith((Task task) =>
// {
// //using (ResponseMessage response = task.Result)
// //{
// // if (!response.IsSuccessStatusCode)
// // {
// // }
// //}
// }
// ));
// });
// await Task.WhenAll(tasks);
// if (container.cache && RedisHelper.Instance != null)
// {
// lists.ForEach(async x => {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, x.id, x);
// });
// }
// }
// if (container.cache && RedisHelper.Instance != null && !flag)
// {
// await RedisHelper.ExpireAsync(CacheCosmosPrefix + container.container.Id, timeoutSeconds);
// }
// stopwatch.Stop();
// return enyites;
// }
// public static async Task
> FindByDict(this AzureCosmosFactory azureCosmosFactory, Dictionary dict, List propertys = null) where T : CosmosEntity
// {
// StringBuilder sql;
// sql = SQLHelper.GetSQLSelect(propertys);
// string pk = typeof(T).Name;
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql, pk);
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// return await ResultsFromQueryAndOptions(azureCosmosFactory, cosmosDbQuery, queryRequestOptions);
// }
// public static async Task> FindByDict(this AzureCosmosFactory azureCosmosFactory, JsonElement jsonElement, List propertys = null) where T : CosmosEntity
// {
// StringBuilder sql;
// sql = SQLHelper.GetSQLSelect(propertys);
// string pk = typeof(T).Name;
// //Dictionary dict = new Dictionary();
// /* var emobj = jsonElement.EnumerateObject();
// while (emobj.MoveNext())
// {
// dict[emobj.Current.Name] = emobj.Current.Value;
// }
// //处理code
// if (dict.TryGetValue("code", out object _))
// {
// dict.Remove("code");
// }*/
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(jsonElement, sql, pk);
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// return await ResultsFromQueryAndOptions(azureCosmosFactory, cosmosDbQuery, queryRequestOptions);
// }
// public static async Task> FindByDict(this AzureCosmosFactory azureCosmosFactory, string CollectionName, JsonElement json, List propertys = null)
// {
// if (azureCosmosFactory.CosmosDict.typeCosmos.TryGetValue(CollectionName, out AzureCosmosModel container))
// {
// string pk = container.type.Name;
// StringBuilder sql;
// sql = SQLHelper.GetSQLSelect(propertys);
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(json, sql, pk);
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// AsyncPageable query = container.container.GetItemQueryIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
// return await ResultsFromFeedIterator(query);
// }
// else
// {
// throw new BizException("CollectionName named:" + CollectionName + " dose not exsit in Database!");
// }
// }
// public static async Task> FindByDict(this AzureCosmosFactory azureCosmosFactory, string CollectionName, Dictionary dict, List propertys = null)
// {
// if (azureCosmosFactory.CosmosDict.typeCosmos.TryGetValue(CollectionName, out AzureCosmosModel container))
// {
// string pk = container.type.Name;
// StringBuilder sql;
// sql = SQLHelper.GetSQLSelect(propertys);
// AzureCosmosQuery cosmosDbQuery = SQLHelper.GetSQL(dict, sql, pk);
// QueryRequestOptions queryRequestOptions = GetDefaultQueryRequestOptions(itemsPerPage: GetEffectivePageSize(-1, null));
// AsyncPageable query = container.container.GetItemQueryIterator(queryDefinition: cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryRequestOptions);
// return await ResultsFromFeedIterator(query);
// }
// else
// {
// throw new BizException("CollectionName named:" + CollectionName + " dose not exsit in Database!");
// }
// }
// public static async Task> DeleteAll(this AzureCosmosFactory azureCosmosFactory, List ids) where T : CosmosEntity
// {
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// List idPks = new List();
// if (container.monitor)
// {
// List list = await azureCosmosFactory.FindByDict(new Dictionary() { { "id", ids.Select(x => x.id).ToArray() } });
// list = await azureCosmosFactory.DeleteTTL(list);
// return ids;
// }
// else
// {
// int pages = (int)Math.Ceiling((double)ids.Count / pageSize);
// Stopwatch stopwatch = Stopwatch.StartNew();
// for (int i = 0; i < pages; i++)
// {
// List lists = ids.Skip((i) * pageSize).Take(pageSize).ToList();
// List tasks = new List(lists.Count);
// lists.ForEach(item =>
// {
// tasks.Add(container.container.DeleteItemStreamAsync(item.id, new PartitionKey(item.pk))
// .ContinueWith((Task task) =>
// {
// using (Response response = task.Result)
// {
// idPks.Add(new IdPk { id = item.id, pk = item.pk, Status = response.Status });
// // if (!response.IsSuccessStatusCode)
// // {
// // }
// }
// }
// ));
// });
// await Task.WhenAll(tasks);
// if (container.cache && RedisHelper.Instance != null)
// {
// lists.ForEach(async x => {
// await RedisHelper.HDelAsync(CacheCosmosPrefix + container.container.Id, x.id);
// });
// }
// }
// stopwatch.Stop();
// return idPks;
// }
// }
// public static async Task> DeleteAll(this AzureCosmosFactory azureCosmosFactory, Dictionary dict) where T : CosmosEntity
// {
// if (dict.Keys.Count > 0)
// {
// List list = await azureCosmosFactory.FindByDict(dict);
// return await azureCosmosFactory.DeleteAll(list);
// }
// else
// {
// throw new BizException("参数为空", 500);
// }
// }
// public static async Task> DeleteAll(this AzureCosmosFactory azureCosmosFactory, JsonElement dict) where T : CosmosEntity
// {
// List list = await azureCosmosFactory.FindByDict(dict);
// return await azureCosmosFactory.DeleteAll(list);
// }
// public static async Task> DeleteAll(this AzureCosmosFactory azureCosmosFactory, List enyites) where T : CosmosEntity
// {
// Type type = typeof(T);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// List idPks = new List();
// string pk = AzureCosmosUtil.GetPartitionKey(type);
// if (container.monitor)
// {
// enyites = await azureCosmosFactory.DeleteTTL(enyites);
// foreach (T t in enyites)
// {
// object o = type.GetProperty(pk).GetValue(t, null);
// idPks.Add(new IdPk { id = t.id, pk = o.ToString(), StatusCode = HttpStatusCode.NoContent });
// }
// return idPks;
// }
// else
// {
// int pages = (int)Math.Ceiling((double)enyites.Count / pageSize);
// Stopwatch stopwatch = Stopwatch.StartNew();
// for (int i = 0; i < pages; i++)
// {
// List lists = enyites.Skip((i) * pageSize).Take(pageSize).ToList();
// List> itemsToInsert = new List>();
// lists.ForEach(x =>
// {
// object o = type.GetProperty(pk).GetValue(x, null);
// KeyValuePair keyValue = new KeyValuePair(new PartitionKey(o.ToString()), x.id);
// itemsToInsert.Add(keyValue);
// });
// List tasks = new List(lists.Count);
// itemsToInsert.ForEach(item =>
// {
// tasks.Add(container.container.DeleteItemStreamAsync(item.Value, item.Key)
// .ContinueWith((Task task) =>
// {
// using (Response response = task.Result)
// {
// idPks.Add(new IdPk { id = item.Value, pk = item.Key.ToString(), Status = response.Status });
// }
// }
// ));
// });
// await Task.WhenAll(tasks); if (container.cache && RedisHelper.Instance != null)
// {
// lists.ForEach(async x => {
// await RedisHelper.HDelAsync(CacheCosmosPrefix + container.container.Id, x.id);
// });
// }
// }
// stopwatch.Stop();
// return idPks;
// }
// }
// public static async Task DeleteAsync(this AzureCosmosFactory azureCosmosFactory, IdPk idPk) where T : CosmosEntity
// {
// return await DeleteAsync(azureCosmosFactory, idPk.id, idPk.pk);
// }
// public static async Task DeleteAsync(this AzureCosmosFactory azureCosmosFactory, string id, string pk) where T : CosmosEntity
// {
// // pk =AzureCosmosUtil.GetPartitionKey();
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// if (container.monitor)
// {
// List list = await FindByDict(azureCosmosFactory, new Dictionary() { { "id", id } });
// if (list.Count > 0)
// {
// await DeleteTTL(azureCosmosFactory, list);
// return new IdPk { id = id, pk = pk, StatusCode = HttpStatusCode.NoContent };
// }
// else
// {
// throw new BizException("未找到ID匹配的数据,删除失败");
// }
// }
// else
// {
// Response response = await container.container.DeleteItemStreamAsync(id: id, partitionKey: new PartitionKey(pk));
// if (container.cache && RedisHelper.Instance != null)
// {
// await RedisHelper.HDelAsync(CacheCosmosPrefix + container.container.Id, id);
// }
// return new IdPk { id = id, pk = pk, Status = response.Status };
// }
// }
// public static async Task DeleteAsync(this AzureCosmosFactory azureCosmosFactory, T entity) where T : CosmosEntity
// {
// Type type = typeof(T);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// string partitionKey = AzureCosmosUtil.GetPartitionKey(type);
// object o = type.GetProperty(partitionKey).GetValue(entity, null);
// if (container.monitor)
// {
// await DeleteTTL(azureCosmosFactory, new List() { entity });
// return new IdPk { id = entity.id, pk = o.ToString(), StatusCode = HttpStatusCode.NoContent };
// }
// else
// {
// Response response = await container.container.DeleteItemStreamAsync(id: entity.id, partitionKey: new PartitionKey(o.ToString()));
// if (container.cache && RedisHelper.Instance != null)
// {
// await RedisHelper.HDelAsync(CacheCosmosPrefix + container.container.Id, entity.id);
// }
// return new IdPk { id = entity.id, pk = partitionKey, Status = response.Status };
// }
// }
// public static async Task> FindSQL(this AzureCosmosFactory azureCosmosFactory, string sql, Dictionary Parameters = null) where T : CosmosEntity
// {
// if (sql.Contains(".pk"))
// {
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// QueryRequestOptions queryOptions = GetQueryRequestOptions(GetEffectivePageSize(-1, null));
// if (Parameters != null)
// {
// AzureCosmosQuery cosmosDbQuery = new AzureCosmosQuery
// {
// QueryText = sql,
// Parameters = Parameters
// };
// AsyncPageable feedIterator = container.container
// .GetItemQueryIterator(cosmosDbQuery.CosmosQueryDefinition, requestOptions: queryOptions);
// return await ResultsFromFeedIterator(feedIterator);
// }
// else
// {
// QueryDefinition queryDefinition = new QueryDefinition(sql);
// return await ResultsFromFeedIterator(container.container.GetItemQueryIterator(queryDefinition));
// }
// }
// else
// {
// throw new BizException("查询参数必须设置 .pk ", ResponseCode.PARAMS_ERROR);
// }
// }
// ///
// /// 偌TTL刉壺
// ///
// ///
// ///
// ///
// private static async Task> DeleteTTL(this AzureCosmosFactory azureCosmosFactory, List list) where T : CosmosEntity
// {
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// list.ForEach(x => { x.ttl = ttl; });
// list = await DeleteTTlALL(azureCosmosFactory, list);
// if (container.cache && RedisHelper.Instance != null)
// {
// list.ForEach(async x => {
// await RedisHelper.HDelAsync(CacheCosmosPrefix + container.container.Id, x.id);
// });
// }
// return list;
// }
// private static async Task> DeleteTTlALL(this AzureCosmosFactory azureCosmosFactory, List enyites) where T : CosmosEntity
// {
// Type type = typeof(T);
// int pages = (int)Math.Ceiling((double)enyites.Count / pageSize);
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(type.Name);
// bool flag = false;
// if (RedisHelper.Exists(CacheCosmosPrefix + container.container.Id))
// {
// flag = true;
// }
// string partitionKey = AzureCosmosUtil.GetPartitionKey(type);
// Stopwatch stopwatch = Stopwatch.StartNew();
// for (int i = 0; i < pages; i++)
// {
// List lists = enyites.Skip((i) * pageSize).Take(pageSize).ToList();
// List> itemsToInsert = new List>();
// lists.ForEach(async x =>
// {
// x.pk = type.Name;
// //x.ttl = null;
// MemoryStream stream = new MemoryStream();
// await JsonSerializer.SerializeAsync(stream, x, new JsonSerializerOptions { IgnoreNullValues = true });
// object o = type.GetProperty(partitionKey).GetValue(x, null);
// KeyValuePair keyValue = new KeyValuePair(new PartitionKey(o.ToString()), stream);
// itemsToInsert.Add(keyValue);
// });
// List tasks = new List(lists.Count);
// itemsToInsert.ForEach(item =>
// {
// tasks.Add(container.container.UpsertItemStreamAsync(item.Value, item.Key)
// .ContinueWith((Task task) =>
// {
// //using (ResponseMessage response = task.Result)
// //{
// // if (!response.IsSuccessStatusCode)
// // {
// // }
// //}
// }
// ));
// });
// await Task.WhenAll(tasks);
// if (container.cache && RedisHelper.Instance != null)
// {
// lists.ForEach(async x => {
// await RedisHelper.HSetAsync(CacheCosmosPrefix + container.container.Id, x.id, x);
// });
// }
// }
// if (container.cache && RedisHelper.Instance != null && !flag)
// {
// await RedisHelper.ExpireAsync(CacheCosmosPrefix + container.container.Id, timeoutSeconds);
// }
// stopwatch.Stop();
// return enyites;
// }
// private static QueryRequestOptions GetDefaultQueryRequestOptions(int? itemsPerPage = null, int? maxBufferedItemCount = null, int? maxConcurrency = null)
// {
// QueryRequestOptions queryRequestOptions = new QueryRequestOptions
// {
// MaxItemCount = itemsPerPage == -1 ? 1000 : itemsPerPage,
// MaxBufferedItemCount = maxBufferedItemCount ?? 100,
// MaxConcurrency = maxConcurrency ?? 50
// };
// return queryRequestOptions;
// }
// private static int GetEffectivePageSize(int itemsPerPage, int? maxItemCount)
// {
// return itemsPerPage == -1 ? maxItemCount ?? itemsPerPage : Math.Min(maxItemCount ?? itemsPerPage, itemsPerPage);
// }
// private static async Task> ResultsFromQueryAndOptions(this AzureCosmosFactory azureCosmosFactory, AzureCosmosQuery cosmosDbQuery, QueryRequestOptions queryOptions)
// {
// if (cosmosDbQuery == null)
// {
// return null;
// }
// AzureCosmosModel container = azureCosmosFactory.GetCosmosModel(typeof(T).Name);
// AsyncPageable query = container.container.GetItemQueryIterator(
// queryDefinition: cosmosDbQuery.CosmosQueryDefinition,
// requestOptions: queryOptions);
// return await ResultsFromFeedIterator(query);
// }
// private static async Task> ResultsFromFeedIterator(AsyncPageable query, int? maxItemCount = null)
// {
// List results = new List();
// await foreach (T t in query)
// {
// results.Add(t);
// if (results.Count == maxItemCount)
// {
// return results;
// }
// }
// return results;
// }
// private static QueryRequestOptions GetQueryRequestOptions(int itemsPerPage)
// {
// QueryRequestOptions queryRequestOptions = new QueryRequestOptions
// {
// MaxItemCount = itemsPerPage
// };
// return queryRequestOptions;
// }
// }
// #endregion
//}
//}