123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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<IdPk>> DeleteKnowledge(List<IdPk> listPid)
- {
- List<IdPk> idPks = await _cosmos.DeleteAll<Knowledge>(listPid);
- foreach (IdPk Knowledge in idPks)
- {
- List<Knowledge> knowledges = await _cosmos.FindSQL<Knowledge>($"select value(c) from c join A0 in c.points where 1=1 and c.type = 0 and A0 = '"+ Knowledge.id + "' ");
- List<SyllabusResource> Resources = await _cosmos.FindSQL<SyllabusResource>($"select value(c) from c join A0 in c.points where 1=1 and c.type = 0 and A0 = '" + Knowledge.id + "' ");
- foreach (Knowledge knowledge in knowledges) knowledge.points.Remove(Knowledge.id);
- foreach (SyllabusResource Resource in Resources) Resource.points.Remove(Knowledge.id);
- await _cosmos.SaveOrUpdateAll(Resources);
- await _cosmos.SaveOrUpdateAll(knowledges);
- }
- return idPks;
- }
- public async Task<List<Knowledge>> SaveOrUpdateKnowledge(List<Knowledge> request)
- {
- foreach (Knowledge item in request)
- {
- if (item.id == null)
- {
- 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;
- }
- }
- }
|