|
@@ -304,11 +304,10 @@ namespace TEAMModelOS.Controllers
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- List<List<SyllabusTree>> tts = new List<List<SyllabusTree>>();
|
|
|
+ List<SyllabusTreeNode> treeNodes = new List<SyllabusTreeNode>();
|
|
|
Volume volume;
|
|
|
var client = _azureCosmos.GetCosmosClient();
|
|
|
string code = null;
|
|
|
- SyllabusTreeNode tree = null;
|
|
|
List<string> sid = new List<string>();
|
|
|
request.syllabusId.ForEach(x => { sid.Add($"'{x}'"); });
|
|
|
var sidSql= string.Join(",", sid);
|
|
@@ -319,86 +318,31 @@ namespace TEAMModelOS.Controllers
|
|
|
await foreach (var item in client.GetContainer("TEAMModelOS", "School").GetItemQueryIterator<Syllabus>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Syllabus-{request.volumeId}") }))
|
|
|
{
|
|
|
List<SyllabusTree> trees = SyllabusService.ListToTree(item.children);
|
|
|
- tts.Add(trees);
|
|
|
+ SyllabusTreeNode tree = new SyllabusTreeNode() { id = item.id, scope = item.scope, trees = trees, volumeId = item.volumeId, auth = item.auth };
|
|
|
+ treeNodes.Add(tree);
|
|
|
+
|
|
|
}
|
|
|
volume = await client.GetContainer("TEAMModelOS", "School").ReadItemAsync<Volume>(request.volumeId, new PartitionKey($"Volume-{code}"));
|
|
|
- tree = new SyllabusTreeNode() { id = request.volumeId, scope = "school", trees = new List<SyllabusTree>() };
|
|
|
+
|
|
|
}
|
|
|
else if (request.scope == "private")
|
|
|
{
|
|
|
code = request.issuer;
|
|
|
- var queryslt = $"SELECT value(c) FROM c ";
|
|
|
+ var queryslt = $"SELECT value(c) FROM c where c.id in ({sidSql})";
|
|
|
await foreach (var item in client.GetContainer("TEAMModelOS", "Teacher").GetItemQueryIterator<Syllabus>(queryText: queryslt, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Syllabus-{request.volumeId}") }))
|
|
|
{
|
|
|
List<SyllabusTree> trees = SyllabusService.ListToTree(item.children);
|
|
|
- tts.Add(trees);
|
|
|
+ SyllabusTreeNode tree = new SyllabusTreeNode() { id = item.id, scope = item.scope, trees = trees, volumeId = item.volumeId, auth = item.auth };
|
|
|
+ treeNodes.Add(tree);
|
|
|
}
|
|
|
volume = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemAsync<Volume>(request.volumeId, new PartitionKey($"Volume-{code}"));
|
|
|
- tree = new SyllabusTreeNode() { id = request.volumeId, scope = "private", trees = new List<SyllabusTree>() };
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return BadRequest();
|
|
|
}
|
|
|
- //bool coedit = false;
|
|
|
- //bool share = false;
|
|
|
- //SyllabusTreeNode etree = null;
|
|
|
- //if (syllabus.auth.IsNotEmpty())
|
|
|
- //{
|
|
|
- // foreach (var x in syllabus.auth)
|
|
|
- // {
|
|
|
- // if ($"Share-{x.tmdid }" == request.code)
|
|
|
- // {
|
|
|
- // coedit = x.coedit;
|
|
|
- // share = x.share;
|
|
|
- // break;
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
- //if (coedit)
|
|
|
- //{
|
|
|
- // var treechd = SyllabusService.ListToTree(syllabus.children);
|
|
|
- // etree = new SyllabusTreeNode() {
|
|
|
- // id = syllabus.id,
|
|
|
- // trees = treechd
|
|
|
- // };
|
|
|
- //}
|
|
|
- //SyllabusTreeNode stree = new SyllabusTreeNode();
|
|
|
- //if (share && snodes.IsNotEmpty())
|
|
|
- //{
|
|
|
- // stree = new SyllabusTreeNode()
|
|
|
- // {
|
|
|
- // id = syllabus.id,
|
|
|
- // };
|
|
|
- // snodes.ForEach(x =>
|
|
|
- // {
|
|
|
- // SyllabusTree syllabusTree = null;
|
|
|
- // foreach (var node in syllabus.children)
|
|
|
- // {
|
|
|
- // if (node.id == x)
|
|
|
- // {
|
|
|
- // syllabusTree = new SyllabusTree
|
|
|
- // {
|
|
|
- // id = node.id,
|
|
|
- // pid = node.pid,
|
|
|
- // order = node.order,
|
|
|
- // rnodes = node.rnodes,
|
|
|
- // cids = node.cids
|
|
|
- // };
|
|
|
- // break;
|
|
|
- // }
|
|
|
- // }
|
|
|
- // HashSet<Tnode> newNodes = new HashSet<Tnode>();
|
|
|
- // SyllabusService.GetNewNode(syllabus.children, x, newNodes);
|
|
|
- // var trees = SyllabusService.ListToTree(newNodes.ToList());
|
|
|
- // if (syllabusTree != null)
|
|
|
- // {
|
|
|
- // syllabusTree.children.AddRange(trees);
|
|
|
- // stree.trees.Add(syllabusTree);
|
|
|
- // }
|
|
|
- // });
|
|
|
- //}
|
|
|
- return Ok(new { tree });
|
|
|
+
|
|
|
+ return Ok(new { volume,tree= treeNodes });
|
|
|
}
|
|
|
catch (Exception ex) {
|
|
|
await _dingDing.SendBotMsg($"OS,{_option.Location},teacher/share/view()\n{ex.Message}", GroupNames.醍摩豆服務運維群組);
|