using Azure.Cosmos;
using HTEXLib.COMM.Helpers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using TEAMModelOS.SDK.DI;
using TEAMModelOS.SDK.Extension;
namespace TEAMModelOS.SDK.Models
{
public static class ThirdService
{
public static async Task<(string accessConfig, Area area, AreaSetting setting)> GetAccessConfig(CosmosClient client,string standard) {
Area area = null;
await foreach (var item in client.GetContainer(Constant.TEAMModelOS, "Normal").
GetItemQueryIterator($"select value(c) from c where c.standard='{standard}'", requestOptions: new QueryRequestOptions { PartitionKey = new PartitionKey("Base-Area") }))
{
area = item;
break;
}
AreaSetting setting = null;
if (area != null)
{
try
{
setting = await client.GetContainer(Constant.TEAMModelOS, "Normal").ReadItemAsync(area.id, new PartitionKey("AreaSetting"));
}
catch (CosmosException)
{
setting = null;
}
}
if (setting == null|| string.IsNullOrEmpty(setting.accessConfig))
{
return (null,null,null);
}
else {
return (setting.accessConfig,area,setting);
}
}
public static async Task> GetDiagnosisList(CosmosClient client, string standard,DingDing dingDing, AreaSetting setting, ThirdApisService _thirdApisService,string PXID) {
List abilityNos = null ;
var config= setting.accessConfig.ToObject();
config.TryGetProperty("config", out JsonElement _config);
if ($"{_config}".Equals("scsyxpt"))
{
// abilityNos = await ScApisService.GetDiagnosisListByProject_V2(new { accessConfig = setting.accessConfig, pxid = PXID }.ToJsonString());
}
//获取能力点
List abilities = null;
if (abilityNos.IsNotEmpty()) {
abilities = new List();
StringBuilder sql = new StringBuilder($"select value(c) from c where c.no in {string.Join(",", abilityNos.Select(x => $"'{x}'"))}");
await foreach (var item in client.GetContainer("TEAMModelOS", "Normal")
.GetItemQueryIterator(queryText: sql.ToString(), requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Ability-{standard}") }))
{
abilities.Add(item);
}
}
return abilities;
}
}
}