KnowledgeService.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading.Tasks;
  5. using TEAMModelOS.SDK.Module.AzureCosmosDBV3;
  6. using TEAMModelOS.Service.Models.Syllabus;
  7. using TEAMModelOS.Service.Services.Syllabus.Interface;
  8. namespace TEAMModelOS.Service.Services.Syllabus.Implement
  9. {
  10. public class KnowledgeService : IKnowledgeService
  11. {
  12. private IAzureCosmosDBV3Repository _cosmos;
  13. public KnowledgeService(IAzureCosmosDBV3Repository cosmos)
  14. {
  15. _cosmos = cosmos;
  16. }
  17. public async Task<List<Knowledge>> SaveOrUpdateKnowledge(List<Knowledge> request)
  18. {
  19. foreach (Knowledge item in request)
  20. {
  21. if (item.id == null)
  22. {
  23. //if (item.scope == "personal")
  24. //{
  25. // item.id = item.partitionKey + "-" + item.TEAMModelId + "-" + item.knowledgeId.Replace("-", "");
  26. //}
  27. //else {
  28. // item.id = item.partitionKey + "-" + item.subjectCode + "-" + item.knowledgeId.Replace("-", "");
  29. //}
  30. item.id = Guid.NewGuid().ToString();
  31. }
  32. if (item.type == 1 && item.points.Count > 0)
  33. {
  34. List<string> vs = item.points;
  35. foreach (string s in vs)
  36. {
  37. List<Knowledge> knowledges = await _cosmos.FindByDict<Knowledge>(new Dictionary<string, object>() { { "id", s } });
  38. foreach (Knowledge knowledge in knowledges)
  39. {
  40. knowledge.points.Remove(item.id);
  41. knowledge.points.Add(item.id);
  42. }
  43. await _cosmos.SaveOrUpdateAll(knowledges);
  44. }
  45. item.points.Clear();
  46. }
  47. }
  48. List<Knowledge> ts = await _cosmos.SaveOrUpdateAll(request);
  49. return ts;
  50. }
  51. }
  52. }