/// <summary> /// 取得班級空座號。 /// </summary> public static List <string> GetUnUsedSeatNo(this ClassRecord classrecord) { List <int> UsedSeatNo = new List <int>(); List <string> UnUsedSeatNo = new List <string>(); int SeatNo; if (classrecord == null) { return(UnUsedSeatNo); } foreach (StudentRecord studRec in classrecord.Students) { int.TryParse(studRec.SeatNo, out SeatNo); UsedSeatNo.Add(SeatNo); } UsedSeatNo.Sort(); for (int i = 1; i <= classrecord.Students.Count; i++) { if (!UsedSeatNo.Contains(i)) { UnUsedSeatNo.Add(i.ToString()); } } if (UsedSeatNo.Count > 0) { UnUsedSeatNo.Add((UsedSeatNo[UsedSeatNo.Count - 1] + 1).ToString()); } return(UnUsedSeatNo); }
public List <StudentRecord> GetClassStudents(ClassRecord classRec) { lock (_ClassStudents) { if (_ClassStudents.ContainsKey(classRec.ID)) { return(new List <StudentRecord>(_ClassStudents[classRec.ID])); } else { return(new List <StudentRecord>()); } } }
public int CompareTo(StudentRecord other) { if (CompareStudentRecord != null) { CompareStudentRecordEventArgs args = new CompareStudentRecordEventArgs(this, other); CompareStudentRecord(null, args); return(args.Result); } else { ClassRecord c1 = this.Class; ClassRecord c2 = other.Class; if (c1 == c2) { int seatNo1 = int.MinValue, seatNo2 = int.MinValue; int.TryParse(this.SeatNo, out seatNo1); int.TryParse(other.SeatNo, out seatNo2); if (seatNo1 == seatNo2) { return(this.StudentNumber.CompareTo(other.StudentNumber)); } else { return(seatNo1.CompareTo(seatNo2)); } } else { if (c1 == null) { return(int.MinValue); } else if (c2 == null) { return(int.MaxValue); } return(c1.CompareTo(c2)); } } }
/// <summary> /// 取得班級類別資料。 /// </summary> public static List <ClassTagRecord> GetTags(this ClassRecord record) { return(ClassTag.Instance[record.ID]); }
internal CompareClassRecordEventArgs(ClassRecord v1, ClassRecord v2) { Value1 = v1; Value2 = v2; }