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> SaveOrUpdateKnowledge(List 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 vs = item.points; foreach (string s in vs) { List knowledges = await _cosmos.FindByDict(new Dictionary() { { "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 ts = await _cosmos.SaveOrUpdateAll(request); return ts; } } }