using Azure.Cosmos; using HTEXLib.COMM.Helpers; using Microsoft.Azure.Documents; using System; using System.Collections.Generic; using System.Text; using TEAMModelOS.SDK; using TEAMModelOS.SDK.DI; using TEAMModelOS.SDK.Models; using TEAMModelOS.SDK.Models.Cosmos.Common; namespace TEAMModelFunction { public static class TriggerWork { public static async void Trigger(AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing, CosmosClient client, Document input, TriggerData tdata, AzureRedisFactory _azureRedis) { try { if ((tdata.status != null && tdata.status.Value == 404) || tdata.ttl > 0) { return; } var adid = tdata.id; var adcode = ""; string blobcntr = null; if (tdata.scope.Equals("school")) { adcode = $"Activity-{tdata.school}"; blobcntr = tdata.school; } else { adcode = $"Activity-{tdata.creatorId}"; blobcntr = tdata.creatorId; } await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修作业活动【{tdata.name}-{tdata.id}-ttl={tdata.ttl}】正在操作", GroupNames.成都开发測試群組); TeacherWork work = await client.GetContainer("TEAMModelOS", "Common").ReadItemAsync(input.Id, new Azure.Cosmos.PartitionKey($"{tdata.code}")); //List voteRecords = await _azureStorage.FindListByDict(new Dictionary() { { "RowKey", input.Id }, { "PartitionKey", vote.progress } }); if (work != null) { (List tchList, _) = await TriggerStuActivity.GetTchList(client, _dingDing, work.tchLists, work.school); List tchActivities = new List(); if (tchList.IsNotEmpty()) { tchList.ForEach(x => { tchActivities.Add(new StuActivity { pk = "Activity", id = work.id, code = $"Activity-{x.id}", type = "TeacherWork", name = work.name, startTime = work.startTime, endTime = work.endTime, scode = work.code, scope = work.scope, school = work.school, creatorId = work.creatorId, subjects = new List { "" }, blob = null, owner = work.owner, createTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), taskStatus = -1, classIds = work.tchLists }); }); } await TriggerStuActivity.SaveStuActivity(client, _dingDing, null, null, tchActivities); } } catch (Exception ex) { await _dingDing.SendBotMsg($"{Environment.GetEnvironmentVariable("Option:Location")}研修作业活动异常{ex.Message}{ex.StackTrace}", GroupNames.成都开发測試群組); } } } }