12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Threading.Tasks;
- using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
- using TEAMModelOS.Service.Models.Syllabus;
- using TEAMModelOS.Service.Services.Syllabus.Interface;
- namespace TEAMModelOS.Service.Services.Syllabus.Implement
- {
- public class KnowledgeService : IKnowledgeService
- {
- private IAzureCosmosDBV3Repository _cosmos;
- public KnowledgeService(IAzureCosmosDBV3Repository cosmos)
- {
- _cosmos = cosmos;
- }
- public async Task<List<Knowledge>> SaveOrUpdateKnowledge(List<Knowledge> request)
- {
- foreach (Knowledge item in request)
- {
- if (item.id == null)
- {
- //if (item.scope == "personal")
- //{
- // item.id = item.partitionKey + "-" + item.TEAMModelId + "-" + item.knowledgeId.Replace("-", "");
- //}
- //else {
- // item.id = item.partitionKey + "-" + item.subjectCode + "-" + item.knowledgeId.Replace("-", "");
- //}
- item.id = Guid.NewGuid().ToString();
- }
- if (item.type == 1 && item.points.Count > 0)
- {
- List<string> vs = item.points;
- foreach (string s in vs)
- {
- List<Knowledge> knowledges = await _cosmos.FindByDict<Knowledge>(new Dictionary<string, object>() { { "id", s } });
- foreach (Knowledge knowledge in knowledges)
- {
- knowledge.points.Remove(item.id);
- knowledge.points.Add(item.id);
- }
- await _cosmos.SaveOrUpdateAll(knowledges);
- }
- item.points.Clear();
- }
- }
- List<Knowledge> ts = await _cosmos.SaveOrUpdateAll(request);
- return ts;
- }
- }
- }
|