zhouj1203@hotmail.com před 1 rokem
rodič
revize
6a6aa3e7fd
1 změnil soubory, kde provedl 27 přidání a 6 odebrání
  1. 27 6
      TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

+ 27 - 6
TEAMModelOS.FunctionV4/CosmosDB/TriggerExam.cs

@@ -1960,12 +1960,16 @@ namespace TEAMModelOS.FunctionV4
                         {
                             index_item_json = await _azureStorage.GetBlobContainerClient($"{info.creatorId}").GetBlobClient($"{info.papers[no].blob}/{url}").DownloadContentAsync();
                         }
-                        JObject keys = JObject.Parse(index_item_json.Content.ToString());
-                        string type = keys["exercise"].Value<string>("type");
-                        int level = keys["exercise"].Value<int>("level");
-                        var knowledge = keys["exercise"].Value<JArray>("knowledge")?.ToObject<List<string>>();
-                        string pid = keys.Value<string>("pid");
-                        itemInfos.Add((id, pid, level, type, knowledge));
+                        JsonElement itemJson = JsonDocument.Parse(new MemoryStream(Encoding.UTF8.GetBytes(index_item_json.Content.ToString()))).RootElement;
+                        itemJson.TryGetProperty("exercise", out JsonElement exercise);
+                        itemJson.TryGetProperty("pid", out JsonElement pid);
+                        var item_json = exercise.ToObject<Exercise>();
+                        //JObject keys = JObject.Parse(index_item_json.Content.ToString());
+                        string type = item_json.type;
+                        int level = item_json.level;
+                        var knowledge = item_json.knowledges;
+                        //string pid = keys.Value<string>("pid");
+                        itemInfos.Add((id, pid.GetString(), level, type, knowledge));
                     }
 
                     /* double[] point = StringHelper.ListTodouble(result.paper.point);
@@ -2116,6 +2120,23 @@ namespace TEAMModelOS.FunctionV4
             /// </summary>
             public Scoring scoring { get; set; }
 
+        }
+
+        private class Exercise
+        {
+            /// <summary>
+            /// 题目类型
+            /// </summary>
+            public string type { get; set; }
+            /// <summary>
+            /// 难度
+            /// </summary>
+            public int level { get; set; }
+            /// <summary>
+            /// 知识点
+            /// </summary>
+            public List<string> knowledges { get; set; }
+
         }
         private class Scoring
         {