using Microsoft.Azure.Cosmos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TEAMModelOS.SDK.DI;
using TEAMModelOS.SDK.Models.Cosmos;
using TEAMModelOS.SDK.Models.Cosmos.BI.BISchool;
namespace TEAMModelOS.SDK.Models.Service.BI
{
public static class BISchoolService
{
///
/// 更新版本信息
///
///
///
///
///
public static async Task UpSchoolEdition(CosmosClient cosmosClient, DingDing _dingDing, List services, string id)
{
try
{
School school = await cosmosClient.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync(id, new PartitionKey("Base"));
school.edition = calSchoolEdition(school, services);
await cosmosClient.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(school, id, new PartitionKey("Base"));
BIRelation biRel = await cosmosClient.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync(id, new PartitionKey("BIRel"));
biRel.edition = school.edition;
await cosmosClient.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync(biRel, id, new PartitionKey("BIRel"));
}
catch (Exception ex)
{
_ = _dingDing.SendBotMsg($"BI,{Environment.GetEnvironmentVariable("Option:Location")},UpSchoolEdition() 服务列表:{services},学校id:{id}\n{ex.Message}\n{ex.StackTrace}\n", GroupNames.成都开发測試群組);
}
}
///
/// 計算學校版本公式 ※計算邏輯變更:廢止原size+scale判斷邏輯
///
public static Edition calSchoolEdition(School school, List services)
{
int edition = 1;
bool adminFlg = (services.Contains("IPDYZYLC")) ? true : false;
bool analFlg = (services.Contains("YMPCVCIM")) ? true : false;
bool fiveFlg = (services.Contains("YPXSJ6NJ")) ? true : false;
if (adminFlg && analFlg && fiveFlg) edition = 3;
else if (adminFlg && analFlg) edition = 2;
else edition = 1;
if (school.edition != null)
{
school.edition.current = edition;
if (school.edition.record < edition)
{
school.edition.record = edition;
}
}
else
{
Edition tempEdition = new()
{
current = edition,
record = edition
};
school.edition = tempEdition;
}
return school.edition;
}
}
}