25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
2.8 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. //using System.Linq;
  5. using System.Runtime.Serialization.Formatters.Binary;
  6. using System.Text;
  7. //using System.Threading.Tasks;
  8. namespace StuMgmLib
  9. {
  10. #region 题目信息
  11. [Serializable]
  12. public class CourseInfo
  13. {
  14. public short Id;
  15. public short Pid;
  16. public int Time;
  17. public string Name;
  18. public string Content;
  19. }
  20. #endregion
  21. #region 学生题目信息一览
  22. public enum CourseStatusEnum
  23. {
  24. undo, // 未开始
  25. doing, // 进行中
  26. waiting, // 等待验收
  27. failed, // 验收失败
  28. preSharing, // 准备分享
  29. pass // 验收通过
  30. }
  31. [Serializable]
  32. public class CourseStatus
  33. {
  34. public short CourseId;
  35. public CourseStatusEnum Status;
  36. }
  37. [Serializable]
  38. public class UserInfo
  39. {
  40. public short JobId;
  41. public string Name;
  42. public List<CourseStatus> CourseStatus;
  43. }
  44. #endregion
  45. #region 学生单题详细信息
  46. public class HistoryInfo
  47. {
  48. DateTime Time;
  49. string Describe;
  50. }
  51. public class DetailInfo
  52. {
  53. public short CourseId;
  54. public short JobId;
  55. List<HistoryInfo> Describes;
  56. }
  57. #endregion
  58. class Server
  59. {
  60. //List<CourseInfo> GetCourseInfo();
  61. //UserInfo GetUserInfo(short jobId);
  62. //DetailInfo GetDetailInfo(short jobId, short courseId);
  63. public byte[] GetUser(short jobId)
  64. {
  65. UserInfo info = new UserInfo();
  66. info.JobId = 111;
  67. info.Name = "aaaa";
  68. info.CourseStatus = new List<CourseStatus>();
  69. CourseStatus aa = new CourseStatus();
  70. aa.CourseId = 222;
  71. aa.Status = CourseStatusEnum.undo; // 做题状态
  72. info.CourseStatus.Add(aa);
  73. MemoryStream ms = new MemoryStream();
  74. BinaryFormatter iFormatter = new BinaryFormatter();
  75. iFormatter.Serialize(ms, info);
  76. byte[] buff = ms.GetBuffer();
  77. return buff;
  78. }
  79. public UserInfo Parse(byte[] bt)
  80. {
  81. MemoryStream ms = new MemoryStream(bt);
  82. BinaryFormatter iFormatter = new BinaryFormatter();
  83. UserInfo obj = (UserInfo)iFormatter.Deserialize(ms);
  84. return obj;
  85. }
  86. }
  87. class StudentInfo
  88. {
  89. //List<CourseInfo> GetCourseInfo();
  90. //UserInfo GetUserInfo(short jobId);
  91. //DetailInfo GetDetailInfo(short jobId, short courseId);
  92. }
  93. class Program
  94. {
  95. //static void Main(string[] args)
  96. //{
  97. // Server s = new Server();
  98. // byte[] buf = s.GetUser(0);
  99. // UserInfo aa = s.Parse(buf);
  100. //}
  101. }
  102. }