}//--------------------------

        //this procedure will update major exam schedule
        public void UpdateMajorExamSchedule(CommonExchange.SysAccess userInfo, CommonExchange.MajorExamSchedule majorExamScheduleInfo)
        {
            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                remClient.UpdateMajorExamSchedule(userInfo, majorExamScheduleInfo);
            }

            Int32 index = 0;

            foreach (DataRow examRow in _majorExamScheduleTable.Rows)
            {
                if (examRow.RowState != DataRowState.Deleted)
                {
                    if (majorExamScheduleInfo.MajorExamId == RemoteServerLib.ProcStatic.DataRowConvert(examRow, "major_exam_id", Int64.Parse("0")))
                    {
                        DataRow editRow = _majorExamScheduleTable.Rows[index];

                        editRow.BeginEdit();

                        editRow["course_group_id"]     = majorExamScheduleInfo.CourseGroupId;
                        editRow["exam_date"]           = majorExamScheduleInfo.ExamDate;
                        editRow["exam_description"]    = majorExamScheduleInfo.ExamDescription;
                        editRow["exam_information_id"] = majorExamScheduleInfo.ExamInformationId;
                        editRow["group_description"]   = majorExamScheduleInfo.GroupDescription;
                        editRow["sysid_semester"]      = majorExamScheduleInfo.SemesterSysId;
                        editRow["year_id"]             = majorExamScheduleInfo.YearId;

                        editRow.EndEdit();
                    }

                    index++;
                }
            }
        }//----------------------------
        }//-------------------------------

        //this procedure will insert major exam schedule
        public void InsertMajorExamSchedule(CommonExchange.SysAccess userInfo, CommonExchange.MajorExamSchedule majorExamScheduleInfo)
        {
            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                remClient.InsertMajorExamSchedule(userInfo, majorExamScheduleInfo);
            }
        }//--------------------------
        }//-----------------------------

        #endregion

        #region Programer-Defined Functions

        //this function will get search major exam schedule
        public DataTable GetSearchMajorExamSchedule(CommonExchange.SysAccess userInfo, String dateStart, String dateEnd,
                                                    String courseGoupList, String examInformationList)
        {
            DataTable newTable = new DataTable("MajorExamTable");

            newTable.Columns.Add("major_exam_id", System.Type.GetType("System.Int64"));
            newTable.Columns.Add("exam_date", System.Type.GetType("System.String"));
            newTable.Columns.Add("exam_description", System.Type.GetType("System.String"));
            newTable.Columns.Add("group_description", System.Type.GetType("System.String"));

            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                _majorExamScheduleTable = remClient.SelectMajorExamSchedule(userInfo, dateStart, dateEnd, courseGoupList, examInformationList, _serverDateTime);
            }

            foreach (DataRow examRow in _majorExamScheduleTable.Rows)
            {
                DataRow newRow = newTable.NewRow();

                newRow["major_exam_id"]     = RemoteServerLib.ProcStatic.DataRowConvert(examRow, "major_exam_id", Int64.Parse("0"));
                newRow["exam_date"]         = DateTime.Parse(RemoteServerLib.ProcStatic.DataRowConvert(examRow, "exam_date", "")).ToLongDateString();
                newRow["exam_description"]  = RemoteServerLib.ProcStatic.DataRowConvert(examRow, "exam_description", "");
                newRow["group_description"] = RemoteServerLib.ProcStatic.DataRowConvert(examRow, "group_description", "");

                newTable.Rows.Add(newRow);
            }

            newTable.AcceptChanges();

            return(newTable);
        }//-------------------------
        }//--------------------

        //this fucntion will determine if the major exam schedule already exist
        public Boolean IsExistsYearSemesterIDExamDateInformationIDExamSchedule(CommonExchange.SysAccess userInfo,
                                                                               CommonExchange.MajorExamSchedule majorExamScheduleInfo)
        {
            Boolean value = false;

            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                value = remClient.IsExistsYearSemesterIDExamDateInformationIDExamSchedule(userInfo, majorExamScheduleInfo);
            }

            return(value);
        }//-----------------------
        //this will initialize the class
        private void InitializeClass(CommonExchange.SysAccess userInfo)
        {
            //gets the server date and time
            using (RemoteClient.RemCntBaseManager remClient = new RemoteClient.RemCntBaseManager())
            {
                _serverDateTime = remClient.GetServerDateTime(userInfo);
            } //----------------------

            //gets the dataset for the course manager
            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                _classDataSet = remClient.GetDataSetForMajorExamSchedule(userInfo, _serverDateTime);
            } //-----------------------
        }     //-------------------------------
        }//----------------------------

        //this procedure will delete major exam schedule
        public void DeleteMajorExamSchedule(CommonExchange.SysAccess userInfo, CommonExchange.MajorExamSchedule majorExamScheduleInfo)
        {
            using (RemoteClient.RemCntMajorExamScheduleManager remClient = new RemoteClient.RemCntMajorExamScheduleManager())
            {
                remClient.DeleteMajorExamSchedule(userInfo, majorExamScheduleInfo);
            }

            Int32 index = 0;

            foreach (DataRow examRow in _majorExamScheduleTable.Rows)
            {
                if (examRow.RowState != DataRowState.Deleted)
                {
                    if (majorExamScheduleInfo.MajorExamId == RemoteServerLib.ProcStatic.DataRowConvert(examRow, "major_exam_id", Int64.Parse("0")))
                    {
                        DataRow delRow = _majorExamScheduleTable.Rows[index];

                        delRow.Delete();
                    }

                    index++;
                }
            }
        }//--------------------------