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; } } }