TriggerVirtueImport.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //using Microsoft.Extensions.Configuration;
  2. //using System;
  3. //using System.Collections.Generic;
  4. //using System.Linq;
  5. //using System.Net.Http;
  6. //using System.Text;
  7. //using System.Text.Json;
  8. //using System.Threading.Tasks;
  9. //using TEAMModelOS.SDK.DI;
  10. //using TEAMModelOS.SDK;
  11. //using Azure.Cosmos;
  12. //using TEAMModelOS.SDK.Models.Cosmos.School;
  13. //using TEAMModelOS.SDK.Models;
  14. //using TEAMModelOS.SDK.Extension;
  15. //using HTEXLib.COMM.Helpers;
  16. //using OpenXmlPowerTools;
  17. //namespace TEAMModelOS.FunctionV4.CosmosDB
  18. //{
  19. // public class TriggerVirtueImport
  20. // {
  21. // public static async Task Trigger(CoreAPIHttpService _coreAPIHttpService, AzureCosmosFactory _azureCosmos, AzureServiceBusFactory _serviceBus, AzureStorageFactory _azureStorage, DingDing _dingDing,
  22. // CosmosClient client, JsonElement input, TriggerData data, IHttpClientFactory _httpClient, IConfiguration _configuration)
  23. // {
  24. // VirtueImport virtueImport = input.ToObject<VirtueImport>();
  25. // if (virtueImport != null)
  26. // {
  27. // HashSet<string> ids = new HashSet<string>();
  28. // foreach (var x in virtueImport.students)
  29. // {
  30. // string id = $"{virtueImport.year}-{virtueImport.semesterId}-{x.id}";
  31. // ids.Add(id);
  32. // }
  33. // HashSet<OverallEducation> overallEducations = new HashSet<OverallEducation>();
  34. // string sql = $"select value c from c where c.id in ({string.Join(",", ids.Select(z => $"'{z}'"))}) and c.periodId='{virtueImport.periodId}' ";
  35. // var result = await client.GetContainer(Constant.TEAMModelOS, Constant.Student).GetList<OverallEducation>(sql, $"OverallEducation-{virtueImport.school}");
  36. // IEnumerable<string> notInDbIds = null;
  37. // if (result.list.IsNotEmpty())
  38. // {
  39. // notInDbIds = ids.Except(result.list.Select(x => x.id));
  40. // overallEducations = new HashSet<OverallEducation>(result.list);
  41. // }
  42. // else
  43. // {
  44. // notInDbIds = ids;
  45. // }
  46. // foreach (var y in virtueImport.students)
  47. // {
  48. // string id = $"{virtueImport.year}-{virtueImport.semesterId}-{y.id}";
  49. // var overallEducation = overallEducations.Where(z => z.id.Equals(id)).First();
  50. // if (overallEducation != null)
  51. // {
  52. // var exam = overallEducation.virtue.Find(f => f.examId.Equals(x.id));
  53. // if (exam != null)
  54. // {
  55. // var item = exam.itemScore.Find(f => f.id.Equals(x.id));
  56. // if (item != null)
  57. // {
  58. // item.name = y.name;
  59. // item.score = y.score;
  60. // item.type = virtueImport.type;
  61. // }
  62. // else
  63. // {
  64. // exam.itemScore.Add(new ItemScore { name = x.name, score = y.score, totalScore = x.items.Sum(b => b.score), type = virtueImport.type, id = x.id });
  65. // }
  66. // exam.examType = virtueImport.type;
  67. // exam.examDate = virtueImport.time;
  68. // exam.examName = virtueImport.name;
  69. // }
  70. // else
  71. // {
  72. // overallEducation.virtue.Add(new EducationScore
  73. // {
  74. // examName = virtueImport.name,
  75. // examId = virtueImport.id,
  76. // examDate = virtueImport.time,
  77. // examType = virtueImport.type,
  78. // itemScore = new List<ItemScore> { new ItemScore { name = x.name, score = y.score, totalScore = x.items.Sum(b => b.score), type = virtueImport.type, id = x.id } }
  79. // });
  80. // }
  81. // }
  82. // else
  83. // {
  84. // overallEducation = new OverallEducation
  85. // {
  86. // id = id,
  87. // code = $"OverallEducation-{virtueImport.school}",
  88. // pk = "OverallEducation",
  89. // periodId = virtueImport.periodId,
  90. // year = virtueImport.year,
  91. // semesterId = virtueImport.semesterId,
  92. // schoolCode = virtueImport.school,
  93. // studentId = y.id,
  94. // name = y.name,
  95. // classId = y.classId,
  96. // stuYear = y.stuYear,
  97. // virtue = new List<EducationScore> { new EducationScore {
  98. // examName=virtueImport.name,
  99. // examId=virtueImport.id,
  100. // examDate=virtueImport.time,
  101. // examType=virtueImport.type,
  102. // itemScore= new List<ItemScore>{ new ItemScore { name=x.name,score=y.score,totalScore=x.items.Sum(b=>b.score),type=virtueImport.type } }
  103. // }
  104. // }
  105. // };
  106. // overallEducations.Add(overallEducation);
  107. // }
  108. // }
  109. // }
  110. // }
  111. // }
  112. //}