Exemple #1
0
        public static bool FacultyOverlap(string facUser, string courseToCheck)
        {
            bool result = false;
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryFacTimes         = from usr in db.users
                                        join crs in db.courses
                                        on usr.userID equals crs.instructor
                                        join crstb in db.course_timeblocks
                                        on crs.courseID equals crstb.courseID
                                        where usr.username == facUser
                                        select crstb.timeblock;
            var queryNewCourseTimes = from crs in db.courses
                                      join crstb in db.course_timeblocks
                                      on crs.courseID equals crstb.courseID
                                      where crs.courseName == courseToCheck
                                      select crstb.timeblock;

            //MessageBox.Show(TimeCheck.convertTime(queryNewCourseTimes.ToList()));

            foreach (var c in queryFacTimes)
            {
                if (TimeCheck.overlaps(TimeCheck.convertTime(queryNewCourseTimes.ToList()), TimeCheck.convertTime(queryFacTimes.ToList())))
                {
                    result = true;
                }
            }
            return(result);
        }
 private void button6_Click(object sender, EventArgs e)
 {
     if (listBox2.SelectedIndex == -1)
     {
         MessageBox.Show("Please select a prerequisite to remove!");
     }
     else
     {
         try
         {
             linqtoregdbDataContext db = new linqtoregdbDataContext();
             db.prereqs.DeleteOnSubmit((from prq in db.prereqs
                                        where prq.courseName == listBox1.SelectedItem.ToString() && prq.prereqName == listBox2.SelectedItem.ToString()
                                        select prq).FirstOrDefault());
             db.SubmitChanges();
             listBox2.Items.Clear();
             listBox2.Items.AddRange((from prq in db.prereqs
                                      where prq.courseName == listBox1.SelectedItem.ToString()
                                      select prq.prereqName).ToArray());
         }
         catch (Exception)
         {
             MessageBox.Show("Error removing prerequisite!");
         }
     }
 }
Exemple #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var getUser = from usr in db.users
                          where usr.username == User.username
                          select usr;
            var currentUser = getUser.First(x => true);

            if (textBox2.Text != textBox3.Text)
            {
                MessageBox.Show("Passwords do not match.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (currentUser.password == Hasher.GetHash(textBox1.Text).ToString() || admin)
            {
                currentUser.password = Hasher.GetHash(textBox2.Text).ToString();
                db.SubmitChanges();
                MessageBox.Show("Password changed successfully");
                this.Close();
            }
            else
            {
                MessageBox.Show("Current password incorrect.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            //label1.Text = "";
            //label2.Text = "";
            //label3.Text = "";
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
        }
 private void button5_Click(object sender, EventArgs e)
 {
     if (listBox3.SelectedIndex == -1)
     {
         MessageBox.Show("Please select a course to add as a prerequisite!");
     }
     else
     {
         try
         {
             linqtoregdbDataContext db = new linqtoregdbDataContext();
             db.prereqs.InsertOnSubmit(new prereq
             {
                 courseName = listBox1.SelectedItem.ToString(),
                 prereqName = listBox3.SelectedItem.ToString()
             });
             db.SubmitChanges();
             listBox2.Items.Clear();
             listBox2.Items.AddRange((from prq in db.prereqs
                                      where prq.courseName == listBox1.SelectedItem.ToString()
                                      select prq.prereqName).ToArray());
         }
         catch (Exception)
         {
             MessageBox.Show("Error adding prerequisite. Make sure you aren't inserting a duplicate.");
         }
     }
 }
        private void button9_Click(object sender, EventArgs e)
        {
            if (listBox4.SelectedIndex != -1)
            {
                linqtoregdbDataContext db = new linqtoregdbDataContext();
                db.user_courses.DeleteOnSubmit((from usrcrs in db.user_courses
                                                where usrcrs.courseName == listBox1.SelectedItem.ToString() && usrcrs.username == listBox4.SelectedItem.ToString() && usrcrs.semester == maskedTextBox1.Text
                                                select usrcrs).FirstOrDefault());
                textBox3.Text = (Convert.ToInt32(textBox3.Text) + 1).ToString();
                (from crs in db.courses
                 where crs.courseName == listBox1.SelectedItem.ToString() && crs.semester == maskedTextBox1.Text
                 select crs).FirstOrDefault().numSeats += 1;
                listBox5.Items.Add(listBox4.SelectedItem.ToString());
                listBox4.Items.Remove(listBox4.SelectedItem);
                db.SubmitChanges();

                //listBox4.Items.AddRange((from usrcrs in db.user_courses
                //                         where usrcrs.courseName == listBox1.SelectedItem.ToString()
                //                         select usrcrs.username).ToArray());
                //var queryGetUsersNotInClass = from usr in db.users
                //                              select usr.username;
                //foreach (var c in queryGetUsersNotInClass)
                //{
                //    if (!listBox4.Items.Contains(c))
                //    {
                //        listBox5.Items.Add(c);
                //    }
                //}
            }
            else
            {
                MessageBox.Show("Please select a student to remove.");
            }
        }
Exemple #6
0
        private void button2_Click(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryUsers = from usr in db.pongs
                             orderby usr.pacman_highscore descending
                             select usr;

            int    i      = 1;
            string output = "";
            string header = "";

            foreach (var c in queryUsers)
            {
                if (c.username == currentUser)
                {
                    header = "Your high score: " + c.pacman_highscore + "\n" + "Your rank: " + i + "\n\n";
                }
                if (i <= 10)
                {
                    output += i + ": " + c.username + " scored " + c.pacman_highscore + "\n";
                }
                i++;
            }
            MessageBox.Show(header + output);
        }
        private void adviseesBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            string selectedAdvisee    = usernames[adviseesBox.SelectedIndex];

            button1.Show();
        }
        private void AddClassForm_Load(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            listBox3.Items.AddRange((from crs in db.courses
                                     select crs.courseName).ToArray());
        }
Exemple #9
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count != 0)
            {
                DialogResult result = MessageBox.Show("Are you sure you want to delete this class?", "Confirm Delete", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    linqtoregdbDataContext db = new linqtoregdbDataContext();

                    var queryCourseID = from crs in db.user_courses
                                        where crs.courseName == dataGridView1.SelectedRows[0].Cells[0].Value.ToString() && crs.semester == "S15"
                                        select crs;

                    foreach (var c in queryCourseID)
                    {
                        db.user_courses.DeleteOnSubmit(c);
                        var addedClass = (from crs in db.courses
                                          where crs.courseName == c.courseName
                                          select crs).FirstOrDefault();
                        addedClass.numSeats += 1;
                        db.SubmitChanges();
                    }
                    db.SubmitChanges();

                    UpdateGrid();

                    MessageBox.Show("Course Removed Successfully!");
                }
            }
            else
            {
                MessageBox.Show("No course selected!");
            }
        }
Exemple #10
0
        public Classes(Form homePage, userstruct status, bool admin)
        {
            prevForm = homePage;
            InitializeComponent();
            User    = status;
            isAdmin = admin;
            comboBox1.Items.Clear();

            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryCoursesOffered = from crs in db.courses
                                      where crs.semester == nextTerm
                                      select crs.courseName;

            //string line;
            //System.IO.StreamReader database = new System.IO.StreamReader("courses.in");
            //while (!database.EndOfStream)
            //{
            //line = database.ReadLine();
            foreach (var c in queryCoursesOffered)
            {
                string thing = "";
                for (int i = 0; c[i] != '-'; i++)
                {
                    thing += c[i];
                }
                if (!comboBox1.Items.Contains(thing))
                {
                    comboBox1.Items.Add(thing);
                }
            }
            //database.Close();
        }
Exemple #11
0
        private void loadForm(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryTeachingSchedule = from crs in db.courses
                                        join usr in db.users
                                        on crs.instructor equals usr.userID
                                        where usr.username == currentUser.username
                                        select crs;

            foreach (var c in queryTeachingSchedule)
            {
                teachingScheduleBox.Items.Add(c.courseName);
            }

            var queryAdvisees = from usr in db.users
                                join adv in db.users
                                on usr.advisor equals adv.userID
                                where adv.username == currentUser.username
                                select usr;

            foreach (var c in queryAdvisees)
            {
                adviseesBox.Items.Add(c.firstName + " " + c.lastName);
                usernames.Add(c.username);
            }
        }
Exemple #12
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            label9.Visible    = false;
            comboBox3.Visible = false;
            comboBox3.Enabled = false;

            comboBox2.Items.Clear();

            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryCoursesOffered = from crs in db.courses
                                      where crs.courseName.Contains(comboBox1.Text) && crs.semester == nextTerm
                                      select crs.courseTitle;


            //string line;
            //System.IO.StreamReader database = new System.IO.StreamReader("courses.in");
            foreach (var c in queryCoursesOffered)
            {
                //line = database.ReadLine();
                //string thing = "";
                //for (int i = 0; c[i] != '-'; i++)
                //    thing += c[i];
                //if (comboBox1.Text.Equals(thing))
                //{
                //var thing="";
                //for (int i = 11; i<26; i++)
                //    thing += c[i];
                if (!comboBox2.Items.Contains(c))
                {
                    comboBox2.Items.Add(c);
                }
                //}
            }
            //database.Close();

            label2.Visible    = true;
            comboBox2.Visible = true;
            comboBox2.Enabled = true;
            comboBox2.Text    = "";
            label3.Visible    = false;
            label4.Visible    = false;
            //label5.Visible = false;
            label6.Visible = false;
            //label7.Visible = false;
            //label8.Visible = false;
            label10.Visible      = false;
            label11.Visible      = false;
            label12.Visible      = false;
            label13.Visible      = false;
            label14.Visible      = false;
            label15.Visible      = false;
            button3.Visible      = false;
            button3.Enabled      = false;
            button4.Visible      = false;
            button4.Enabled      = false;
            richTextBox1.Visible = false;
            richTextBox1.Clear();
            richTextBox1.ForeColor = Color.Black;
        }
Exemple #13
0
        bool conflicts(string courseName)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryOldCourseTimes = from usrcs in db.user_courses
                                      join crstb in db.course_timeblocks
                                      on usrcs.courseID equals crstb.courseID
                                      where usrcs.username == currentUser.username && usrcs.semester == "S15" && usrcs.courseName != courseName
                                      select crstb.timeblock;

            List <int> timesForOldClass = new List <int>();

            foreach (int cID in queryOldCourseTimes)
            {
                timesForOldClass.Add(cID);
            }

            List <int> timesForNewClass = new List <int>();

            var queryNewCourseTimes = from crs in db.courses
                                      join crstb in db.course_timeblocks
                                      on crs.courseID equals crstb.courseID
                                      where crs.courseName == courseName
                                      select crstb.timeblock;

            foreach (var qtb in queryNewCourseTimes)
            {
                timesForNewClass.Add(qtb);
            }

            List <dayAndTime> oldClassTimes = convertTime(timesForOldClass);
            List <dayAndTime> newClassTimes = convertTime(timesForNewClass);


            var addedClass = (from crs in db.courses
                              where crs.courseName == courseName
                              select crs).FirstOrDefault();


            var queryOldCourses = from usrcs in db.user_courses
                                  where usrcs.username == currentUser.username && usrcs.semester == "S15"
                                  select usrcs;

            List <user_course> oldCourses = new List <user_course>();

            foreach (var c in queryOldCourses)
            {
                oldCourses.Add(c);
            }

            if (overlaps(newClassTimes, oldClassTimes))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #14
0
        private void teachingScheduleBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            label4.Show();
            richTextBox1.Clear();
            richTextBox1.Show();
            label10.Show();
            label11.Show();
            label12.Show();
            label13.Show();
            label14.Show();
            label15.Show();
            richTextBox3.Clear();
            richTextBox3.Show();
            label2.Show();

            var selectedCourse = (from crs in db.courses
                                  where crs.courseName == (string)teachingScheduleBox.SelectedItem
                                  select crs).FirstOrDefault();

            label11.Text = selectedCourse.courseTitle;
            label13.Text = selectedCourse.courseCredit.ToString();
            label15.Text = selectedCourse.numSeats.ToString();

            var queryGetTimeBlocks = from crs in db.courses
                                     join tbs in db.course_timeblocks
                                     on crs.courseID equals tbs.courseID
                                     where crs.courseName == (string)teachingScheduleBox.SelectedItem
                                     select tbs.timeblock;

            List <int> timeBlocksToConvert = new List <int>();

            foreach (var timeIterator in queryGetTimeBlocks)
            {
                timeBlocksToConvert.Add(timeIterator);
            }
            List <dayAndTime> timeBlocks = convertTime(timeBlocksToConvert);

            foreach (var timeIterator in timeBlocks)
            {
                richTextBox1.Text += timeIterator.ToString() + "\n";
            }

            var queryStudentsInClass = from usrcrs in db.user_courses
                                       join usrs in db.users
                                       on usrcrs.username equals usrs.username
                                       where usrcrs.courseName == selectedCourse.courseName && usrcrs.semester == "S15"
                                       select usrs;

            foreach (var c in queryStudentsInClass)
            {
                richTextBox3.Text += c.firstName + " " + c.lastName + "\n";
            }
        }
Exemple #15
0
        public static List <int> GetTimes(string className)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryGetCourseTimes   = from crs in db.courses
                                        join tbs in db.course_timeblocks
                                        on crs.courseID equals tbs.courseID
                                        where crs.courseName == className
                                        select tbs.timeblock;

            return(queryGetCourseTimes.ToList());
        }
Exemple #16
0
        private void formLoad(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryFaculty          = from usr in db.users
                                        where usr.usertype == "faculty"
                                        select usr;

            foreach (var c in queryFaculty)
            {
                comboBox2.Items.Add(c.username);
            }
        }
Exemple #17
0
        private void CheckHighScore()
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryUser             = (from usr in db.pongs
                                         where usr.username == currentUser
                                         select usr).First();

            if (queryUser.invaders_highscore < Convert.ToInt32(label2.Text))
            {
                MessageBox.Show("Congratulations! You have set a personal high score!");
                queryUser.invaders_highscore = Convert.ToInt32(label2.Text);
                db.SubmitChanges();
            }
        }
        public AddClassForm(BaseForm prevWindow, userstruct inUser)
        {
            prev = prevWindow;
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            InitializeComponent();
            var queryAllFaculty = from usr in db.users
                                  where usr.usertype == "faculty"
                                  select usr;

            foreach (var c in queryAllFaculty)
            {
                comboBox1.Items.Add(c.username);
            }
        }
        private void EditClassesForm_VisibleChanged(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            listBox1.Items.Clear();
            var queryAllCourses = from crs in db.courses
                                  orderby crs.courseName
                                  select crs.courseName;

            foreach (var c in queryAllCourses)
            {
                listBox1.Items.Add(c);
            }
            listBox1.SelectedIndex = selectedIndex;
        }
Exemple #20
0
        public DeleteFacultyForm(Form prevWindowIn, user inUser)
        {
            InitializeComponent();
            prevWindow = prevWindowIn;
            deletee    = inUser;

            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryAdvisees = from usr in db.users
                                join adv in db.users
                                on usr.advisor equals adv.userID
                                where adv.username == deletee.username
                                select usr;

            foreach (var c in queryAdvisees)
            {
                listBox2.Items.Add(c.firstName + " " + c.lastName);
                usernames.Add(c.username);
            }
            var queryCoursesAffected = from crs in db.courses
                                       join inst in db.users
                                       on crs.instructor equals inst.userID
                                       where inst.username == deletee.username
                                       select crs;

            foreach (var c in queryCoursesAffected)
            {
                listBox1.Items.Add(c.courseName);
            }

            var queryGetFaculty = from usr in db.users
                                  where usr.usertype == "faculty" && usr.username != deletee.username
                                  select usr;

            foreach (var c in queryGetFaculty)
            {
                listBox4.Items.Add(c.username);
                listBox3.Items.Add(c.username);
            }
            for (int i = 0; i < listBox3.Items.Count; i++)
            {
                facColor.Add(false);
            }
            listBox3.DrawMode  = DrawMode.OwnerDrawFixed;
            listBox3.DrawItem += new DrawItemEventHandler(listBox3_DrawItem);
        }
        public EditClassesForm(BaseForm inWindow, userstruct inUser)
        {
            prevWindow  = inWindow;
            currentUser = inUser;
            InitializeComponent();
            editMode      = false;
            selectedIndex = -1;

            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryGetInstructors   = from usr in db.users
                                        where usr.usertype == "faculty"
                                        select usr;

            foreach (var c in queryGetInstructors)
            {
                comboBox1.Items.Add(c.username);
            }
        }
Exemple #22
0
        private void formLoad(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            linqtoregdbDataContext db = new linqtoregdbDataContext();
            var queryAllUsers         = from usr in db.users
                                        orderby usr.username
                                        select usr;

            foreach (var c in queryAllUsers)
            {
                listBox1.Items.Add(c.username);
            }
            listBox1.SelectedIndex = selectedUser;

            if (User.type == "admin")
            {
                button1.Hide();
                button2.Hide();
            }
        }
Exemple #23
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            selectedUser = listBox1.SelectedIndex;
            if (listBox1.SelectedIndex != -1)
            {
                linqtoregdbDataContext db = new linqtoregdbDataContext();

                var queryGetUser = (from usr in db.users
                                    where usr.username == listBox1.SelectedItem.ToString()
                                    select usr).FirstOrDefault();
                textBox1.Text = queryGetUser.firstName;
                textBox3.Text = queryGetUser.lastName;
                if (queryGetUser.usertype == "student")
                {
                    textBox4.Show();
                    label4.Show();
                    button4.Show();
                    button6.Show();
                    button7.Hide();
                    textBox4.Text = (from usr in db.users
                                     where usr.userID == queryGetUser.advisor
                                     select usr.username).FirstOrDefault();
                }
                else if (queryGetUser.usertype == "faculty")
                {
                    button7.Show();
                    textBox4.Hide();
                    label4.Hide();
                    button6.Hide();
                    button4.Hide();
                }
                else
                {
                    button7.Hide();
                    textBox4.Hide();
                    label4.Hide();
                    button6.Hide();
                    button4.Hide();
                }
            }
        }
Exemple #24
0
        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            richTextBox1.ForeColor = Color.Black;

            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryCoursesOffered = from crs in db.courses
                                      where crs.courseTitle == comboBox2.Text && crs.courseName.Contains(comboBox3.Text) && crs.semester == nextTerm
                                      select crs;

            //string line;

            //System.IO.StreamReader database = new System.IO.StreamReader("courses.in");
            //while (!database.EndOfStream)
            //foreach (var c in queryCoursesOffered)
            //{
            //int i;
            //line = database.ReadLine();
            //string thing = "";
            //string otherThing = "";
            //for (i = 0; line[i] != '-'; i++)
            //thing += line[i];
            //for (i++; line[i] != '-'; i++) ;
            //for (i++; line[i] != ' '; i++)
            //otherThing += line[i];
            //if (comboBox1.Text.Equals(thing))
            //{
            //thing = "";
            //for (i = 11; i < 26; i++)
            //thing += line[i];
            //if (comboBox2.Text.ToString() == thing)
            //{
            //if (otherThing == comboBox3.Text.ToString())
            convertLine();
            //}
            //}
            //}
            //database.Close();
        }
Exemple #25
0
        private void button1_Click(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            var queryNewCourseID = (from crs in db.courses
                                    where crs.courseName == courseName
                                    select crs.courseID).FirstOrDefault();

            int numTimeBlocks = listBox1.Items.Count;

            for (int i = 0; i < numTimeBlocks; i++)
            {
                course_timeblock crstb = new course_timeblock
                {
                    courseID  = queryNewCourseID,
                    timeblock = timeblocks[0]
                };
                if (((from tbs in db.course_timeblocks
                      where tbs.timeblock == timeblocks[0] && tbs.courseID == queryNewCourseID
                      select tbs).FirstOrDefault() == null))
                {
                    db.course_timeblocks.InsertOnSubmit(crstb);
                }
                timeblocks.RemoveAt(0);
                listBox1.Items.RemoveAt(0);
            }
            try
            {
                db.SubmitChanges();
                MessageBox.Show("Times updated successfully!");
            }
            catch (Exception)
            {
                MessageBox.Show("Database error while updating times.");
            }
            this.Close();
        }
Exemple #26
0
        private void button3_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)
            {
                linqtoregdbDataContext db = new linqtoregdbDataContext();

                var queryNewCourseID = (from crs in db.courses
                                        where crs.courseName == courseName
                                        select crs.courseID).FirstOrDefault();

                var queryTBToRemove = (from tbs in db.course_timeblocks
                                       where tbs.timeblock == timeblocks[listBox1.SelectedIndex] && tbs.courseID == queryNewCourseID
                                       select tbs).FirstOrDefault();
                db.course_timeblocks.DeleteOnSubmit(queryTBToRemove);
                var selected = listBox1.SelectedIndex;
                timeblocks.RemoveAt(selected);
                listBox1.Items.RemoveAt(selected);
                db.SubmitChanges();
            }
            else
            {
                MessageBox.Show("No course selected.");
            }
        }
 private void button8_Click(object sender, EventArgs e)
 {
     if (listBox5.SelectedIndex != -1)
     {
         if (maskedTextBox1.Text != "S15")
         {
             MessageBox.Show("Error - Cannot add students to courses not offered in the next semester.");
         }
         else
         {
             linqtoregdbDataContext db = new linqtoregdbDataContext();
             listBox4.Items.Add(listBox5.SelectedItem.ToString());
             db.user_courses.InsertOnSubmit(new user_course
             {
                 courseName   = listBox1.SelectedItem.ToString(),
                 username     = listBox5.SelectedItem.ToString(),
                 semester     = maskedTextBox1.Text,
                 courseCredit = numericUpDown1.Value,
                 grade        = "N",
                 courseID     = (from crs in db.courses
                                 where crs.courseName == listBox1.SelectedItem.ToString() && crs.semester == maskedTextBox1.Text
                                 select crs.courseID).FirstOrDefault()
             });
             (from crs in db.courses
              where crs.courseName == listBox1.SelectedItem.ToString() && crs.semester == maskedTextBox1.Text
              select crs).FirstOrDefault().numSeats -= 1;
             textBox3.Text = (Convert.ToInt32(textBox3.Text) - 1).ToString();
             listBox5.Items.Remove(listBox5.SelectedItem);
             db.SubmitChanges();
         }
     }
     else
     {
         MessageBox.Show("Please select a student to add.");
     }
 }
        private void button1_Click(object sender, EventArgs e)
        {
            linqtoregdbDataContext db = new linqtoregdbDataContext();

            if (comboBox1.SelectedIndex == -1)
            {
                MessageBox.Show("Please select an instructor!");
            }
            else if (maskedTextBox3.Text == "")
            {
                MessageBox.Show("Please enter a course name.");
            }
            else if (textBox2.Text == "")
            {
                MessageBox.Show("Please enter a course title.");
            }
            else if (listBox1.Items.Count == 0)
            {
                MessageBox.Show("Please add at least one time block.");
            }
            else if (!maskedTextBox3.MaskCompleted)
            {
                MessageBox.Show("Course name not in acceptable format.");
            }
            else
            {
                string courseNameToAdd = maskedTextBox3.Text;
                if (courseNameToAdd[0] == ' ')
                {
                    courseNameToAdd = courseNameToAdd.Substring(1, courseNameToAdd.Length - 1);
                }
                try
                {
                    var queryFacID = (from usr in db.users
                                      where usr.username == comboBox1.Text
                                      select usr.userID).FirstOrDefault();
                    course addCourse = new course
                    {
                        instructor   = queryFacID,
                        courseTitle  = textBox2.Text,
                        courseName   = courseNameToAdd,
                        numSeats     = (int)numericUpDown2.Value,
                        courseCredit = numericUpDown1.Value,
                        semester     = "S15"
                    };
                    db.courses.InsertOnSubmit(addCourse);
                    db.SubmitChanges();
                    var queryNewCourseID = (from crs in db.courses
                                            where crs.courseName == courseNameToAdd
                                            select crs.courseID).FirstOrDefault();

                    int numTimeBlocks = listBox1.Items.Count;
                    for (int i = 0; i < numTimeBlocks; i++)
                    {
                        course_timeblock crstb = new course_timeblock
                        {
                            courseID  = queryNewCourseID,
                            timeblock = timeblocks[0]
                        };
                        db.course_timeblocks.InsertOnSubmit(crstb);
                        timeblocks.RemoveAt(0);
                        listBox1.Items.RemoveAt(0);
                    }
                    db.SubmitChanges();
                    MessageBox.Show("Course added successfully!");
                    this.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Error: Invalid course name.");
                }
                try
                {
                    foreach (var c in listBox2.Items)
                    {
                        db.prereqs.InsertOnSubmit(new prereq
                        {
                            courseName = courseNameToAdd,
                            prereqName = c.ToString()
                        });
                    }
                    db.SubmitChanges();
                    this.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Error adding prerequisites. Course added successfully. Edit prerequisites in the Edit Courses menu.");
                    this.Close();
                }
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex == -1)
            {
                MessageBox.Show("No course selected!");
            }
            else
            {
                DialogResult result = MessageBox.Show("Are you sure you want to delete " + textBox1.Text + "?", "Confirm Deletion", MessageBoxButtons.OKCancel);
                if (result == DialogResult.OK)
                {
                    linqtoregdbDataContext db = new linqtoregdbDataContext();
                    string selectedCourse     = listBox1.SelectedItem.ToString();

                    if ((from prq in db.prereqs
                         where prq.prereqName == selectedCourse
                         select prq).FirstOrDefault() != null)
                    {
                        if (MessageBox.Show("Note - class is a prerequisite, so it cannot be removed from the database. Change semester to prevent signup instead?", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            var queryGetCoursesToRemoveEdit = (from crs in db.courses
                                                               where crs.courseName == selectedCourse && crs.semester == maskedTextBox1.Text
                                                               select crs).FirstOrDefault();
                            var queryGetUserCoursesToRemoveEdit = from usrcrs in db.user_courses
                                                                  where usrcrs.courseName == selectedCourse
                                                                  select usrcrs;

                            db.user_courses.DeleteAllOnSubmit(queryGetUserCoursesToRemoveEdit);
                            db.SubmitChanges();
                            queryGetCoursesToRemoveEdit.semester = "F00";
                            db.SubmitChanges();

                            listBox1.SelectedIndex = -1;
                            listBox1.Refresh();
                        }
                        else
                        {
                            MessageBox.Show("Course not removed.");
                        }
                    }
                    else
                    {
                        db.prereqs.DeleteAllOnSubmit((from prq in db.prereqs
                                                      where prq.courseName == selectedCourse
                                                      select prq));
                        db.SubmitChanges();

                        var queryGetTimeBlocksForRemove = from crstb in db.course_timeblocks
                                                          join crs in db.courses
                                                          on crstb.courseID equals crs.courseID
                                                          where crs.courseName == selectedCourse && crs.semester == maskedTextBox1.Text
                                                          select crstb;
                        var queryGetCoursesToRemove = from crs in db.courses
                                                      where crs.courseName == selectedCourse && crs.semester == maskedTextBox1.Text
                                                      select crs;
                        var queryGetUserCoursesToRemove = from usrcrs in db.user_courses
                                                          where usrcrs.courseName == selectedCourse && usrcrs.semester == maskedTextBox1.Text
                                                          select usrcrs;

                        db.user_courses.DeleteAllOnSubmit(queryGetUserCoursesToRemove);
                        db.SubmitChanges();
                        db.course_timeblocks.DeleteAllOnSubmit(queryGetTimeBlocksForRemove);
                        db.SubmitChanges();
                        db.courses.DeleteAllOnSubmit(queryGetCoursesToRemove);
                        db.SubmitChanges();

                        listBox1.SelectedIndex = -1;
                        listBox1.Items.Remove(selectedCourse);
                        listBox1.Refresh();
                    }
                }
            }
        }
        private void button3_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex == -1)
            {
                MessageBox.Show("No course selected!");
            }
            else
            {
                if (!editMode)
                {
                    editMode                = true;
                    textBox1.ReadOnly       = false;
                    maskedTextBox1.ReadOnly = false;
                    textBox2.Hide();
                    comboBox1.Show();
                    textBox3.Hide();
                    numericUpDown1.Show();
                    textBox4.Hide();
                    numericUpDown2.Show();
                    button4.Visible        = true;
                    button7.Visible        = false;
                    button3.Text           = "Save Changes";
                    comboBox1.SelectedItem = textBox2.Text;
                    listBox1.Enabled       = false;
                    button1.Hide();
                    button2.Hide();
                    groupBox2.Hide();
                    groupBox1.Show();

                    linqtoregdbDataContext db = new linqtoregdbDataContext();

                    var queryGetCourse = (from crs in db.courses
                                          where crs.courseName == listBox1.SelectedItem.ToString()
                                          select crs).FirstOrDefault();
                    numericUpDown1.Value = queryGetCourse.courseCredit;
                    numericUpDown2.Value = queryGetCourse.numSeats;
                }
                else
                {
                    if (textBox1.Text == "")
                    {
                        MessageBox.Show("Class title cannot be blank.");
                    }
                    else if (maskedTextBox1.Text.Length != 3)
                    {
                        MessageBox.Show("Improper semester.");
                    }
                    else
                    {
                        linqtoregdbDataContext db = new linqtoregdbDataContext();

                        if (maskedTextBox1.Text != currSemester && listBox4.Items.Count > 0)
                        {
                            if (MessageBox.Show("Are you sure you want to change the semester? Student registrations for this class will be removed.", "Confirm Semester Change", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                            {
                                var numSeatsFreed = (from usrcrs in db.user_courses
                                                     where usrcrs.courseName == listBox1.SelectedItem.ToString()
                                                     select usrcrs).Count();
                                var queryCourseSeatsChanged = (from crs in db.courses
                                                               where crs.courseName == listBox1.SelectedItem.ToString()
                                                               select crs).FirstOrDefault();

                                db.user_courses.DeleteAllOnSubmit((from usrcrs in db.user_courses
                                                                   where usrcrs.courseName == listBox1.SelectedItem.ToString()
                                                                   select usrcrs));
                                queryCourseSeatsChanged.numSeats += numSeatsFreed;
                                numericUpDown2.Value             += numSeatsFreed;
                                db.SubmitChanges();
                            }
                            else
                            {
                                maskedTextBox1.Text = "S15";
                            }
                        }
                        editMode                = false;
                        textBox1.ReadOnly       = true;
                        maskedTextBox1.ReadOnly = true;
                        comboBox1.Hide();
                        textBox2.Show();
                        numericUpDown1.Hide();
                        numericUpDown2.Hide();
                        textBox3.Show();
                        textBox4.Show();
                        button4.Visible  = false;
                        button7.Visible  = true;
                        button3.Text     = "Edit Course";
                        listBox1.Enabled = true;
                        button1.Show();
                        button2.Show();
                        button7.Show();
                        groupBox1.Hide();
                        groupBox2.Show();

                        var queryGetInstructorID = (from usr in db.users
                                                    where usr.username == comboBox1.SelectedItem.ToString()
                                                    select usr.userID).FirstOrDefault();
                        var queryCourseToChange = (from crs in db.courses
                                                   where crs.courseName == listBox1.SelectedItem.ToString()
                                                   select crs).FirstOrDefault();

                        queryCourseToChange.numSeats     = (int)numericUpDown2.Value;
                        queryCourseToChange.courseCredit = numericUpDown1.Value;
                        queryCourseToChange.courseTitle  = textBox1.Text;
                        queryCourseToChange.courseName   = listBox1.SelectedItem.ToString();
                        queryCourseToChange.instructor   = queryGetInstructorID;
                        queryCourseToChange.semester     = maskedTextBox1.Text;

                        db.SubmitChanges();

                        textBox2.Text = comboBox1.Text;
                        textBox3.Text = numericUpDown2.Value.ToString();
                        textBox4.Text = numericUpDown1.Value.ToString();

                        currSemester = maskedTextBox1.Text;
                        listBox1_SelectedIndexChanged(listBox1, e);
                    }
                }
            }
        }