예제 #1
0
        /// <summary>
        /// Changes Student GradePointState from one state to another depending on the GradePointAverage.
        /// </summary>
        /// <param name="student">Student object</param>
        public override void StateChangeCheck(Student student)
        {
            // Go to higher neighboring sibling: REGULARSTATE
            if (student.GradePointAverage > this.UpperLimit)
            {
                student.GradePointStateId = RegularState.GetInstance().GradePointStateId;
            }

            // Go to lower neighboring sibling: SUSPENDEDSTATE
            if (student.GradePointAverage < this.LowerLimit)
            {
                student.GradePointStateId = SuspendedState.GetInstance().GradePointStateId;
            }

            db.SaveChanges();
        }
예제 #2
0
        /// <summary>
        /// Checks for an existing SuspendedState instance.
        /// Instantiates an SuspendedState and populates it to the database if there is none.
        /// </summary>
        /// <returns>honourState : instance of the SuspendedState sub class</returns>
        public static SuspendedState GetInstance()
        {
            if (suspendedState == null)
            {
                BITCollege_MGContext db = new BITCollege_MGContext();
                suspendedState = db.SuspendedStates.SingleOrDefault();

                if (suspendedState == null)
                {
                    SuspendedState suspendedState = new SuspendedState();

                    db.SuspendedStates.Add(suspendedState);
                    db.SaveChanges();
                }
            }

            return(suspendedState);
        }