No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

159 líneas
5.4 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using StuMgmLib.MyNameSpace;
  5. using System.Linq;
  6. using System.Data;
  7. using System.ComponentModel;
  8. using System.Collections;
  9. using System.Reflection;
  10. namespace StuMgmClient
  11. {
  12. class SystemData
  13. {
  14. static Dictionary<short, CourseInfo> allCourseInfo;
  15. static Dictionary<short,CourseStatusEnum> allCourseStatus;
  16. static List<CourseInfo> courseInfo;
  17. internal static ErrCode InitSystemData()
  18. {
  19. ErrCode err;
  20. err = InitCourseInfo();
  21. if (err != ErrCode.Success)
  22. return err;
  23. return ErrCode.Success;
  24. }
  25. static ErrCode InitCourseInfo()
  26. {
  27. ErrCode err;
  28. //List<CourseInfo>
  29. courseInfo = new List<CourseInfo>(); ;
  30. err = SystemCtrl.GetCourseInfo(out courseInfo);
  31. if (err != ErrCode.Success)
  32. return err;
  33. //将List<CourseInfo>转为Dictionary<short, CourseInfo>
  34. allCourseInfo = courseInfo.ToDictionary(key => key.Id, value => value);
  35. return ErrCode.Success;
  36. }
  37. internal static ErrCode RefreshUserCourseInfo(UserCourseInfo info)
  38. {
  39. //将UserCourseInfo转为Dictionary<short,CourseStatusEnum>
  40. allCourseStatus = new Dictionary<short, CourseStatusEnum>();
  41. int num = 0;
  42. short oldTem = 0;
  43. //切割字符串
  44. string[] sArray = info.Status.Split(new char[2] { ':', ';' });
  45. foreach (string i in sArray)
  46. {
  47. if (i.Equals("")) { break; }
  48. short tem = Convert.ToInt16(i);
  49. num++;
  50. if (num % 2 != 0)
  51. {
  52. allCourseStatus.Add(tem, CourseStatusEnum.NoStart);
  53. oldTem = tem;
  54. }
  55. else
  56. {
  57. allCourseStatus[oldTem] = (CourseStatusEnum)tem;
  58. }
  59. }
  60. return ErrCode.Success;
  61. }
  62. //internal static void StreeList()
  63. //{
  64. // allStreeDatas = new Dictionary<short,UserCourseDetail>();
  65. // foreach (var item in allCourseStatus)
  66. // {
  67. // UserCourseDetail courseDetail = new UserCourseDetail();
  68. // CourseInfo info = allCourseInfo[item.Key];//找到状态对应的课程表信息
  69. // courseDetail.Id = info.Id;
  70. // courseDetail.Name = info.Name;
  71. // courseDetail.Status = (int)item.Value;
  72. // courseDetail.Content = info.Content;
  73. // allStreeDatas.Add(info.Pid,courseDetail);
  74. // }
  75. //}
  76. //internal static UserCourseDetail r(CourseInfo info, ref Dictionary<short, UserCourseDetail> allCourseStatus)
  77. //{
  78. // UserCourseDetail sel;
  79. // if (allCourseStatus.TryGetValue(info.Id, out sel))
  80. // return sel;
  81. // UserCourseDetail m = new UserCourseDetail();
  82. // //info->m
  83. // allCourseStatus.Add(info.Id, m);
  84. // if (info.Pid != 0)
  85. // {
  86. // UserCourseDetail father = r(allCourseInfo[info.Pid], ref allCourseStatus);
  87. // father.Children.Add(m);
  88. // }
  89. // return m;
  90. //}
  91. //internal static void rr(UserCourseDetail u, TreeNode n)
  92. //{
  93. // foreach(UserCourseDetail child in u.Children)
  94. // {
  95. // TreeNode node = new TreeNode(child);
  96. // n.add(node);
  97. // rr(child, node);
  98. // }
  99. //}
  100. //internal static void aa (List<string> keys,List<string> values)
  101. //{
  102. // Dictionary<short, UserCourseDetail> allCourseStatus=new Dictionary<short,UserCourseDetail>();
  103. // for (short i = 0; i < keys.Count; i++)
  104. // r(allCourseInfo[i], ref allCourseStatus);
  105. // List<UserCourseDetail> lst = new List<UserCourseDetail>();
  106. // //
  107. // //TreeNode all;
  108. // List<TreeNode> all;
  109. // foreach(UserCourseDetail u in lst)
  110. // {
  111. // TreeNode n = new TreeNode();
  112. // rr(u, n);
  113. // all.add(n);
  114. // }
  115. //}
  116. static DataTable ListToDb(List<CourseInfo> list)
  117. {
  118. DataTable dt = new DataTable();
  119. dt.Columns.Add("Id", typeof(int));
  120. dt.Columns.Add("Name", typeof(string));
  121. dt.Columns.Add("Pid", typeof(int));
  122. dt.Columns.Add("Content", typeof(string));
  123. dt.Columns.Add("Statu", typeof(int));
  124. dt.Columns.Add("FirstNode", typeof(int));
  125. dt.Columns.Add("SecondNode", typeof(int));
  126. for (int i = 0; i < list.Count; i++)
  127. {
  128. DataRow dr = dt.NewRow();
  129. dr[0] = list[i].Id;
  130. dr[1] = list[i].Name;
  131. dr[2] = list[i].Pid;
  132. dr[3] = list[i].Content;
  133. dt.Rows.Add(dr);
  134. }
  135. return dt;
  136. }
  137. internal static DataTable StreeTable()
  138. {
  139. return ListToDb(courseInfo);
  140. }
  141. internal static Dictionary<short, CourseStatusEnum> StreeCourseStatus()
  142. {
  143. return allCourseStatus;
  144. }
  145. }
  146. }