Пример #1
0
        public stdMainpage(string username, userDatabase usrDB, courseDatabase crsDB)
        {
            // Store attributes
            InitializeComponent();
            this.crsDB = crsDB;
            this.usrDB = usrDB;
            std        = usrDB.getStudent(username);

            // Change texts
            welcome.Text += std.fname + " " + std.lname;
            gpa.Text     += " " + std.GPA;
            credits.Text += " " + std.totalCredits;

            // Create all the tables
            createCrsLst();
            createGradeHist();
            createStdSch();

            // Clear selections on tables
            gradeHist.ClearSelection();
            stdSch.ClearSelection();

            // Auto completion source
            foreach (course crs in crsDB.getCourseList())
            {
                crsIDBox.AutoCompleteCustomSource.Add(crs.crsID);
            }
        }
Пример #2
0
        public void removeStd(string username, ref courseDatabase crsDB)
        {
            student std = getStudent(username);

            // Increment the number of seats available for each course the student has registered for
            List <course> registeredCrsLst = std.registeredCrs;

            foreach (course registeredCrs in registeredCrsLst)
            {
                foreach (course crs in crsDB.getCourseList())
                {
                    if (registeredCrs.crsID == crs.crsID)
                    {
                        crs.disenrollUser(std);
                        break;
                    }
                }
            }

            // Remove the student from the advisees list of his advisor
            faculty advisor = getFaculty(std.advisor);

            advisor.removeAdvisee(username);

            // Remove the student from the database
            stdLst.Remove(std);
        }
Пример #3
0
        public facMainpage(string username, userDatabase usrDB, courseDatabase crsDB)
        {
            InitializeComponent();
            this.usrDB = usrDB;
            this.crsDB = crsDB;
            fac        = usrDB.getFaculty(username);

            // Change texts
            welcome.Text += fac.fname + " " + fac.lname;

            // Create all the tables
            createCrsLst();
            createFacSch();
            createAdviseeLst();

            // Auto complete
            foreach (course crs in crsDB.getCourseList())
            {
                crsIDBox.AutoCompleteCustomSource.Add(crs.crsID);
            }

            // Clear selection of tables
            facSch.ClearSelection();
            adviseeLst.ClearSelection();
        }
Пример #4
0
 public void dropCrsFromStd(string courseID, ref courseDatabase courseDB, student currentStudent)
 {
     foreach (course crs in courseDB.getCourseList())
     {
         if (courseID.Trim() == crs.crsID.Trim())
         {
             currentStudent.dropCrsFromNext(crs);
             crs.disenrollUser(currentStudent);
             return;
         }
     }
 }
Пример #5
0
 // Change the database
 //----------------------------------------
 public void addCrsToStd(string crsID, string nextSemester, ref courseDatabase crsDB, student currentStudent)
 {
     foreach (course crs in crsDB.getCourseList())
     {
         if (crsID.Trim() == crs.crsID.Trim())
         {
             course selectedCourse = crs;
             selectedCourse.enrollUser(currentStudent);
             course courseAdding = selectedCourse;
             currentStudent.addClassToNext(courseAdding);
             return;
         }
     }
 }
Пример #6
0
        public admCreateCrs(courseDatabase crsDB, userDatabase usrDB)
        {
            InitializeComponent();
            this.crsDB = crsDB;
            this.usrDB = usrDB;


            foreach (course crs in crsDB.getCourseList())
            {
                crsIDBox.AutoCompleteCustomSource.Add(crs.crsID);
            }

            foreach (faculty fac in usrDB.getFacultyList())
            {
                facDropDown.Items.Add(fac.fname + " " + fac.lname);
                facDropDown.AutoCompleteCustomSource.Add(fac.fname + " " + fac.lname);
            }
        }
Пример #7
0
        // Functions for all the tables
        private void createCrsLst()
        {
            DataTable table = new DataTable();

            table.Columns.Add("Course ID", typeof(string));
            table.Columns.Add("Title", typeof(string));
            table.Columns.Add("Instructor", typeof(string));
            table.Columns.Add("Credits", typeof(string));
            table.Columns.Add("Seats", typeof(string));
            table.Columns.Add("Schedule", typeof(string));

            foreach (course crs in crsDB.getCourseList())
            {
                table.Rows.Add(crs.crsID, crs.title, crs.instructor, crs.credit, crs.seats + " / " + crs.maxSeats, crs.getBlocks());
            }

            crsLst.DataSource                = table;
            crsLst.AutoSizeColumnsMode       = DataGridViewAutoSizeColumnsMode.AllCells;
            crsLst.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            int width = crsLst.Columns["Schedule"].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true);

            crsLst.Columns["Schedule"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
            crsLst.AutoSizeRowsMode          = DataGridViewAutoSizeRowsMode.DisplayedCells;
            crsLst.Columns["Schedule"].Width = width;

            DataGridViewCheckBoxColumn btn = new DataGridViewCheckBoxColumn();

            btn.ValueType = typeof(bool);
            crsLst.Columns.Insert(0, btn);
            crsLst.Columns[0].HeaderText = "Add";
            crsLst.Columns[0].Name       = "Add";
            crsLst.ClearSelection();

            foreach (DataGridViewColumn col in crsLst.Columns)
            {
                col.ReadOnly = true;
            }
            crsLst.Columns[0].ReadOnly = false;
        }
Пример #8
0
        public void createCrsLst()
        {
            DataTable table = new DataTable();

            table.Columns.Add("Course ID", typeof(string));
            table.Columns.Add("Title", typeof(string));
            table.Columns.Add("Instructor", typeof(string));
            table.Columns.Add("Credits", typeof(string));
            table.Columns.Add("Seats", typeof(string));
            table.Columns.Add("Schedule", typeof(string));

            crsLst.DataSource = table;
            foreach (course crs in crsDB.getCourseList())
            {
                table.Rows.Add(crs.crsID, crs.title, crs.instructor, crs.credit, crs.seats + " / " + crs.maxSeats, crs.getBlocks());
            }
            crsLst.AutoSizeColumnsMode       = DataGridViewAutoSizeColumnsMode.AllCells;
            crsLst.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            int width = crsLst.Columns["Schedule"].GetPreferredWidth(DataGridViewAutoSizeColumnMode.AllCells, true);

            crsLst.Columns["Schedule"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
            crsLst.AutoSizeRowsMode          = DataGridViewAutoSizeRowsMode.DisplayedCells;
            crsLst.Columns["Schedule"].Width = width;
        }
Пример #9
0
        private void confirmClick(object sender, EventArgs e)
        {
            // Search for missing fields
            if (crsIDBox.Text == "" || titleBox.Text == "" || facDropDown.Text == "" ||
                creditBox.Text == "" || seatBox.Text == "")
            {
                MessageBox.Show("Required fields missing.",
                                "Invalid Input",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            // Check if there is any time specified
            if (!MA.Checked && !MB.Checked && !TA.Checked && !TB.Checked && !WA.Checked && !WB.Checked &&
                !RA.Checked && !RB.Checked && !FA.Checked && !FB.Checked)
            {
                MessageBox.Show("Specify a time slot.",
                                "Invalid Input",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            // Day duplicate over multiple time blocks
            if ((MA.Checked && MB.Checked) || (TA.Checked && TB.Checked) || (WA.Checked && WB.Checked) ||
                (RA.Checked && RB.Checked) || (FA.Checked && FB.Checked))
            {
                MessageBox.Show("Cannot have the same day over two slots",
                                "Invalid Input",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            // Check the presence of starting and ending time.
            if (MA.Checked || TA.Checked || WA.Checked || RA.Checked || FA.Checked)
            {
                if (startingTimeA.Text == "" || endingTimeA.Text == "")
                {
                    MessageBox.Show("Specify the starting and ending time.",
                                    "Invalid input",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    return;
                }
            }


            string crsID = crsIDBox.Text;

            // Search for duplicate course ID
            foreach (course crs in crsDB.getCourseList())
            {
                if (crsID.Trim() == crs.crsID)
                {
                    MessageBox.Show("The course ID is already taken.",
                                    "Duplicate",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Error);
                    return;
                }
            }

            string  title      = titleBox.Text.Trim();
            string  instructor = facDropDown.Text.Trim();
            faculty inst       = usrDB.getFacultyList()[0];

            foreach (faculty fac in usrDB.getFacultyList())
            {
                if (fac.fname + " " + fac.lname == instructor)
                {
                    inst = fac;
                    break;
                }
            }
            string credits = creditBox.Text;

            try
            {
                if (Convert.ToSingle(credits) == 0)
                {
                    MessageBox.Show("No credits given.",
                                    "Warning",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                }
            }
            catch
            {
                MessageBox.Show("Credits have to be a number.",
                                "Warning",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            int seats = 0;

            try
            {
                seats = Convert.ToInt32(seatBox.Text);
            }
            catch
            {
                MessageBox.Show("Seats have to be a number.",
                                "Warning",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
                return;
            }

            // Get the course time block
            int dd = 0;

            if (MA.Checked)
            {
                dd += 1;
            }
            if (TA.Checked)
            {
                dd += 2;
            }
            if (WA.Checked)
            {
                dd += 4;
            }
            if (RA.Checked)
            {
                dd += 8;
            }
            if (FA.Checked)
            {
                dd += 16;
            }

            string day = dd.ToString();

            if (day.Length < 2)
            {
                day = "0" + day;
            }

            string timeBlockA = day + UF.utilities.encodeTime(startingTimeA.Text, endingTimeA.Text);


            if (MB.Checked || TB.Checked || WB.Checked || RB.Checked || FB.Checked)
            {
                // Get the course time block
                dd = 0;
                if (MB.Checked)
                {
                    dd += 1;
                }
                if (TB.Checked)
                {
                    dd += 2;
                }
                if (WB.Checked)
                {
                    dd += 4;
                }
                if (RB.Checked)
                {
                    dd += 8;
                }
                if (FB.Checked)
                {
                    dd += 16;
                }

                day = dd.ToString();
                if (day.Length < 2)
                {
                    day = "0" + day;
                }

                string timeBlockB = day + UF.utilities.encodeTime(startingTimeB.Text, endingTimeB.Text);

                List <string> lst = new List <string>();
                lst.Add(timeBlockA);
                lst.Add(timeBlockB);
                crs = new course(crsID, title, inst.username, credits, seats, 2, lst);
            }
            else
            {
                List <string> lst = new List <string>();
                lst.Add(timeBlockA);
                crs = new course(crsID, title, inst.username, credits, seats, 1, lst);
            }
            string message;

            message  = "Course ID : " + crs.crsID + "\n";
            message += "Title : " + crs.title + "\n";
            message += "Instructor : " + crs.instructor + "\n";
            message += "Credits : " + crs.credit.ToString() + "\n";
            message += "Seats : " + crs.seats.ToString() + "\n";
            message += crs.getBlocks() + "\n";
            message += "Are you sure?";
            if (MessageBox.Show(message, "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
            {
                MessageBox.Show("Canceled the creation.", "Cancel", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                this.DialogResult = DialogResult.OK;
                Close();
            }
        }