Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 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>());
         }
     }
 }
Esempio n. 3
0
 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));
         }
     }
 }
Esempio n. 4
0
 /// <summary>
 /// 取得班級類別資料。
 /// </summary>
 public static List <ClassTagRecord> GetTags(this ClassRecord record)
 {
     return(ClassTag.Instance[record.ID]);
 }
Esempio n. 5
0
 internal CompareClassRecordEventArgs(ClassRecord v1, ClassRecord v2)
 {
     Value1 = v1;
     Value2 = v2;
 }