|
@@ -173,63 +173,27 @@ namespace TEAMModelOS.Controllers
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
//參數取得
|
|
|
if (!request.TryGetProperty("school_code", out JsonElement school_code)) return BadRequest();
|
|
|
- request.TryGetProperty("ids", out JsonElement ids);
|
|
|
- request.TryGetProperty("mode", out JsonElement mode);
|
|
|
- request.TryGetProperty("pmAdd", out JsonElement pmAdd);
|
|
|
- request.TryGetProperty("pmRmv", out JsonElement pmRmv);
|
|
|
- List<string> pmAddList = new List<string>();
|
|
|
- List<string> pmRmvList = new List<string>();
|
|
|
- request.TryGetProperty("job", out JsonElement job);
|
|
|
- if (mode.GetString() .Equals("multi"))
|
|
|
- {
|
|
|
- foreach (var pm in pmAdd.EnumerateArray())
|
|
|
- {
|
|
|
- pmAddList.Add(pm.GetString());
|
|
|
- }
|
|
|
- foreach (var pm in pmRmv.EnumerateArray())
|
|
|
- {
|
|
|
- pmRmvList.Add(pm.GetString());
|
|
|
- }
|
|
|
- } else
|
|
|
- {
|
|
|
- foreach (var pm in pmAdd.EnumerateArray())
|
|
|
- {
|
|
|
- pmAddList.Add(pm.GetString());
|
|
|
- }
|
|
|
+ request.TryGetProperty("ids", out JsonElement _ids);
|
|
|
+ request.TryGetProperty("job", out JsonElement _job);
|
|
|
+ request.TryGetProperty("permission", out JsonElement _permission);
|
|
|
+ if (!_permission.ValueKind.Equals(JsonValueKind.Array) || !_ids.ValueKind.Equals(JsonValueKind.Array)) {
|
|
|
+ return BadRequest();
|
|
|
}
|
|
|
-
|
|
|
+ List<string> permission =_permission.ToObject<List<string>>();
|
|
|
+ List<string> ids = _ids.ToObject<List<string>>();
|
|
|
//更新權限
|
|
|
- foreach (var id in ids.EnumerateArray())
|
|
|
+ List<SchoolTeacher> schoolTeachers = new List<SchoolTeacher>();
|
|
|
+ foreach (var id in ids)
|
|
|
{
|
|
|
- SchoolTeacher st = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<SchoolTeacher>(id.GetString(), new PartitionKey($"Teacher-{school_code}"));
|
|
|
- if(mode.GetString().Equals("multi"))
|
|
|
- {
|
|
|
- st.permissions = pmAddList;
|
|
|
- //foreach (var pm in pmRmvList)
|
|
|
- //{
|
|
|
- // if(st.permissions.Contains(pm))
|
|
|
- // {
|
|
|
- // st.permissions.Remove(pm);
|
|
|
- // }
|
|
|
- //}
|
|
|
- //foreach (var pm in pmAddList)
|
|
|
- //{
|
|
|
- // if (!st.permissions.Contains(pm))
|
|
|
- // {
|
|
|
- // st.permissions.Add(pm);
|
|
|
- // }
|
|
|
- //}
|
|
|
- } else
|
|
|
- {
|
|
|
- st.permissions = pmAddList;
|
|
|
- st.job = (!string.IsNullOrEmpty(job.GetString())) ? job.GetString() : null;
|
|
|
- }
|
|
|
-
|
|
|
- await client.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync<SchoolTeacher>(st, id.GetString(), new PartitionKey($"Teacher-{school_code}"));
|
|
|
+ SchoolTeacher st = await client.GetContainer(Constant.TEAMModelOS, "School").ReadItemAsync<SchoolTeacher>(id, new PartitionKey($"Teacher-{school_code}"));
|
|
|
+ st.permissions = permission;
|
|
|
+ st.job = $"{_job}";
|
|
|
+ await client.GetContainer(Constant.TEAMModelOS, "School").ReplaceItemAsync<SchoolTeacher>(st, id, new PartitionKey($"Teacher-{school_code}"));
|
|
|
+ schoolTeachers.Add(st);
|
|
|
}
|
|
|
- return Ok(new {});
|
|
|
+ return Ok(new {teachers= schoolTeachers });
|
|
|
}
|
|
|
- catch (Exception ex)
|
|
|
+ catch (Exception )
|
|
|
{
|
|
|
return BadRequest();
|
|
|
}
|