RelationDataManager.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using SAGA.GplotRelationComputerManage;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SAGA.GplotManage
  8. {
  9. public class RelationDataManager
  10. {
  11. private void InitRelationData(List<RelationUploader> uploaders)
  12. {
  13. bool containSpace = false;
  14. List<string> systems = new List<string>();
  15. foreach (var uploader in uploaders)
  16. {
  17. if(uploader is SystemRelationUploader)
  18. {
  19. systems.Add(uploader.RelationType);
  20. continue;
  21. }
  22. if(!containSpace&&uploader is SpaceRelationUploader)
  23. {
  24. containSpace = true;
  25. continue;
  26. }
  27. }
  28. //计算数据,以后可能合并
  29. #region 计算空间数据
  30. SpaceComputerHandler spaceHandler = new SpaceComputerHandler();
  31. spaceHandler.ComputerWidthCache();
  32. SpaceData=SpaceComputerDataUtil.LoadData();
  33. #endregion
  34. #region 计算管道数据
  35. SystemComputerHandler systemHandler = new SystemComputerHandler();
  36. systemHandler.ComputerWidthCache(systems);
  37. #endregion
  38. }
  39. /// <summary>
  40. /// 获取空间计算数据
  41. /// </summary>
  42. private object SpaceData { get; set; }
  43. public void CommitRelations(List<RelationUploader> uploaders)
  44. {
  45. InitRelationData(uploaders);
  46. foreach (RelationUploader uploader in uploaders)
  47. {
  48. if(uploader is SpaceRelationUploader)
  49. {
  50. uploader.Upload(SpaceData);
  51. }
  52. else
  53. {
  54. uploader.Upload();
  55. }
  56. }
  57. }
  58. }
  59. }