Browse Source

教师默认空间

CrazyIter_Bin 4 years ago
parent
commit
1618d0b913
1 changed files with 15 additions and 6 deletions
  1. 15 6
      TEAMModelOS/Controllers/Teacher/InitController.cs

+ 15 - 6
TEAMModelOS/Controllers/Teacher/InitController.cs

@@ -64,20 +64,23 @@ namespace TEAMModelOS.Controllers
                 var id = jwt.Payload.Sub;
                 jwt.Payload.TryGetValue("name", out object name);
                 jwt.Payload.TryGetValue("picture", out object picture);
-               List<object> schools = new List<object>();
+                List<object> schools = new List<object>();
                // object schools = null;
                 string defaultschool = null;
                 //TODO 取得Teacher 個人相關數據(課程清單、虛擬教室清單、歷史紀錄清單等),學校數據另外API處理,多校切換時不同
                 var client = _azureCosmos.GetCosmosClient();
                 var response = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemStreamAsync(id, new PartitionKey("Base"));
-
+                int size = 0;
                 //老師個人資料(含初始化)
                 if (response.Status == 200)
                 {
                     var json = await JsonDocument.ParseAsync(response.ContentStream);
                     if (json.RootElement.TryGetProperty("schools", out JsonElement value))
                     {
-
+                        if (json.RootElement.TryGetProperty("size", out JsonElement _size) && _size.ValueKind.Equals(JsonValueKind.Number))
+                        {
+                            size = _size.GetInt32();
+                        }
                         foreach (var obj in value.EnumerateArray())
                         {
                             string statusNow = obj.GetProperty("status").ToString();
@@ -92,12 +95,18 @@ namespace TEAMModelOS.Controllers
                                 if (obj.TryGetProperty("time", out JsonElement time)) {
                                     schoolExtobj.time = obj.GetProperty("time");
                                 }
-                                schoolExtobj.size= obj.GetProperty("size");
+                                
                                 schoolExtobj.picture = school.RootElement.GetProperty("picture");
                                 schools.Add(schoolExtobj);
+                                //如果有申请或者加入学校,但是未分配空间则都可以得到1G免费空间
+                                if (size == 0) {
+                                    size = 1;
+                                    Teacher tech = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemAsync<Teacher>(id, new PartitionKey("Base"));
+                                    tech.size = size;
+                                    await client.GetContainer("TEAMModelOS", "Teacher").ReplaceItemAsync<Teacher>(tech,id, new PartitionKey("Base"));
+                                }
                             }
                         }
-                        //schools = value.ToObject<object>();
                     }
                     //預設學校ID
                     if (json.RootElement.TryGetProperty("defaultSchool", out JsonElement valueD) && !string.IsNullOrEmpty(valueD.ToString()))
@@ -117,7 +126,7 @@ namespace TEAMModelOS.Controllers
                     writer.WriteString("id", id);
                     writer.WriteString("name", name?.ToString());
                     writer.WriteString("picture", picture?.ToString());
-                    writer.WriteNumber("size", 1);
+                    writer.WriteNumber("size", 0);
                     writer.WriteNull("defaultSchool");
                     writer.WriteStartArray("schools");
                     writer.WriteEndArray();