public void GetAndDisplayScores()
        {
            ListScores.Clear();
            ComponentName = ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.Activity;

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [SCORE] WHERE ActivityID='" + ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                SCORE newScore = new SCORE();

                newScore.Date  = Convert.ToDateTime(dt.Rows[x]["Date"]);
                newScore.Score = Convert.ToInt16(dt.Rows[x]["Score"]);
                newScore.Items = Convert.ToInt16(dt.Rows[x]["Items"]);
                newScore.ID    = Convert.ToInt16(dt.Rows[x]["Id"]);

                ListScores.Add(newScore);
            }

            ComputeTotalItemsAndScore();
            ComputeGrade();
            if (ListScores.Count != 0)
            {
                ComputeConvertedGrade();
            }
            ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.Grade = Grade;
        }
        public double ComputeConvertedGrade()
        {
            if (ListScores.Count != 0)
            {
                ConvertedGrade = Grade * (ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.Percentage / 100);

                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("UPDATE [ACTIVITY] SET Grade=@Grade WHERE ActivityID=@ActivityID", con);
                command.Parameters.AddWithValue("@Grade", ConvertedGrade);
                command.Parameters.AddWithValue("@ActivityID", ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID);
                command.ExecuteNonQuery();
                con.Close();

                ViewModelLocator.SelectedSubjectViewModel.GetAndDisplayActivities();

                return(ConvertedGrade);
            }
            else
            {
                ConvertedGrade = 0;

                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("UPDATE [ACTIVITY] SET Grade=@Grade WHERE ActivityID=@ActivityID", con);
                command.Parameters.AddWithValue("@Grade", ConvertedGrade);
                command.Parameters.AddWithValue("@ActivityID", ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID);
                command.ExecuteNonQuery();
                con.Close();

                ViewModelLocator.SelectedSubjectViewModel.GetAndDisplayActivities();

                return(ConvertedGrade);
            }
        }
        public void AddActivity(ACTIVITY newActivity)
        {
            string gradingPeriod = "";

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 0)
            {
                gradingPeriod = "Prelim";
            }

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 1)
            {
                gradingPeriod = "Midterm";
            }

            if (ViewModelLocator.SelectedSubjectViewModel.SelectedGradingPeriod == 2)
            {
                gradingPeriod = "Prefi";
            }

            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grade)", con);

            command.Parameters.AddWithValue("@Activity", newActivity.Activity);
            command.Parameters.AddWithValue("@Percentage", newActivity.Percentage);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.Parameters.AddWithValue("@Grading_Period", gradingPeriod);
            command.Parameters.AddWithValue("@Grade", 0);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayActivities();
        }
        private void GetAndDisplaySubjects()
        {
            ListSubjects.Clear();

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [SUBJECT] WHERE SemID='" + ViewModelLocator.SemesterSelectViewModel.SelectedSemester.SemID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                SUBJECT newSubject = new SUBJECT();

                newSubject.Description    = dt.Rows[x]["Description"].ToString();
                newSubject.PrelimPercent  = Convert.ToDouble(dt.Rows[x]["PrelimPercent"]);
                newSubject.MidtermPercent = Convert.ToDouble(dt.Rows[x]["MidtermPercent"]);
                newSubject.PrefiPercent   = Convert.ToDouble(dt.Rows[x]["PrefiPercent"]);
                newSubject.Schedule       = dt.Rows[x]["Schedule"].ToString();
                newSubject.Units          = Convert.ToInt16(dt.Rows[x]["Units"]);
                newSubject.SubjectCode    = dt.Rows[x]["Subject_Code"].ToString();
                newSubject.SubjectID      = Convert.ToInt16(dt.Rows[x]["Subject_ID"]);
                newSubject.SemID          = Convert.ToInt16(dt.Rows[x]["SemID"]);
                newSubject.Base           = Convert.ToDouble(dt.Rows[x]["Base"]);

                ListSubjects.Add(newSubject);
            }

            UsedUnits = ComputeMaxUnits();
            MaxUnits  = ViewModelLocator.SemesterSelectViewModel.SelectedSemester.MaxUnits;
        }
        public void GetAndDisplayActivities()
        {
            PrelimComponentsPercentTotal  = 0;
            MidtermComponentsPercentTotal = 0;
            PrefiComponentsPercentTotal   = 0;
            PrelimGrade  = 0;
            MidtermGrade = 0;
            PrefiGrade   = 0;
            PrelimListActivity.Clear();
            MidtermListActivity.Clear();
            PrefiListActivity.Clear();
            SubjectName = ViewModelLocator.SubjectsListViewModel.SelectedSubject.Description;

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [ACTIVITY] WHERE Subject_ID='" + ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                ACTIVITY newActivity = new ACTIVITY();

                newActivity.ActivityID    = Convert.ToInt16(dt.Rows[x]["ActivityID"]);
                newActivity.Activity      = dt.Rows[x]["Activity"].ToString();
                newActivity.Grade         = Convert.ToDouble(dt.Rows[x]["Grade"]);
                newActivity.GradingPeriod = dt.Rows[x]["Grading_Period"].ToString();
                newActivity.Percentage    = Convert.ToDouble(dt.Rows[x]["Percentage"]);
                newActivity.SubjectID     = Convert.ToInt16(dt.Rows[x]["Subject_ID"]);

                if (newActivity.GradingPeriod == "Prelim")
                {
                    PrelimListActivity.Add(newActivity);
                    PrelimComponentsPercentTotal += newActivity.Percentage;
                    PrelimGrade += newActivity.Grade;
                }

                if (newActivity.GradingPeriod == "Midterm")
                {
                    MidtermListActivity.Add(newActivity);
                    MidtermComponentsPercentTotal += newActivity.Percentage;
                    MidtermGrade += newActivity.Grade;
                }

                if (newActivity.GradingPeriod == "Prefi")
                {
                    PrefiListActivity.Add(newActivity);
                    PrefiComponentsPercentTotal += newActivity.Percentage;
                    PrefiGrade += newActivity.Grade;
                }
            }

            GetLetterGrade();
            ComputeConvertedGrades();
        }
        public void AddNewUser(USERS newUser)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [USERS] (User_Name) VALUES (@User_Name)", con);

            command.Parameters.AddWithValue("@User_Name", newUser.User);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayUsers();
        }
        public void DeleteSubject()
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("DELETE FROM [SUBJECT] WHERE Subject_ID=@SubjectID", con);

            command.Parameters.AddWithValue("@SubjectID", SelectedSubject.SubjectID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplaySubjects();
        }
        public void RemoveSemester()
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("DELETE FROM [SEMESTER] WHERE SemID=@semID", con);

            command.Parameters.AddWithValue("@semID", SelectedSemester.SemID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplaySemesters();
        }
        public void RemoveUser( )
        {
            SqlConnection con = GeneralMethods.ConnectToDatabase();

            SqlCommand command = new SqlCommand("DELETE FROM [USERS] WHERE UserID=@userID", con);

            command.Parameters.AddWithValue("@userID", SelectedUser.UserID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayUsers();
        }
        public void RemoveActivity()
        {
            if (SelectedActivity != null && (SelectedGradingPeriod == 0 && SelectedActivity.GradingPeriod == "Prelim") || (SelectedGradingPeriod == 1 && SelectedActivity.GradingPeriod == "Midterm") || (SelectedGradingPeriod == 2 && SelectedActivity.GradingPeriod == "Prefi"))
            {
                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("DELETE FROM [ACTIVITY] WHERE ActivityID=@ActivityID", con);
                command.Parameters.AddWithValue("@ActivityID", SelectedActivity.ActivityID);
                command.ExecuteNonQuery();
                con.Close();

                GetAndDisplayActivities();
            }
        }
        public void EditActivity(ACTIVITY changedActivity)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [ACTIVITY] SET Activity=@Activity, Percentage=@Percentage WHERE ActivityID=@ActivityID", con);

            command.Parameters.AddWithValue("@Activity", changedActivity.Activity);
            command.Parameters.AddWithValue("@Percentage", changedActivity.Percentage);
            command.Parameters.AddWithValue("@ActivityID", ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID);
            command.ExecuteNonQuery();
            con.Close();

            ViewModelLocator.ScoresListViewModel.ComputeConvertedGrade();
            GetAndDisplayActivities();
        }
        public void AddNewScore(SCORE newScore)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [SCORE] (Score, Items, Date, ActivityID) VALUES (@Score, @Items, @Date, @ActivityID)", con);

            command.Parameters.AddWithValue("@Score", newScore.Score);
            command.Parameters.AddWithValue("@Items", newScore.Items);
            command.Parameters.AddWithValue("@Date", newScore.Date);
            command.Parameters.AddWithValue("@ActivityID", ViewModelLocator.SelectedSubjectViewModel.SelectedActivity.ActivityID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayScores();
        }
        public void AddNewSemester(SEMESTER newSemester)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [SEMESTER] (Semester_Name, Max_Units, Schoolyear, UserID) VALUES (@Semester_Name, @Max_Units, @Schoolyear, @UserID)", con);

            command.Parameters.AddWithValue("@Semester_Name", newSemester.SemesterName);
            command.Parameters.AddWithValue("@Max_Units", newSemester.MaxUnits);
            command.Parameters.AddWithValue("@Schoolyear", newSemester.Schoolyear);
            command.Parameters.AddWithValue("@UserID", ViewModelLocator.MainWindowViewModel.SelectedUser.UserID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplaySemesters();
        }
        public void EditScore(SCORE changedScore)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [SCORE] SET Score=@Score, Items=@Items, Date=@Date WHERE Id=@Id", con);

            command.Parameters.AddWithValue("@Score", changedScore.Score);
            command.Parameters.AddWithValue("@Items", changedScore.Items);
            command.Parameters.AddWithValue("@Date", changedScore.Date);
            command.Parameters.AddWithValue("@Id", ViewModelLocator.ScoresListViewModel.SelectedScore.ID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplayScores();
        }
        public void ChangePrefiPercent(double newPercent)
        {
            PrefiPercent = newPercent;

            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [SUBJECT] SET PrefiPercent=@PrefiPercent WHERE Subject_ID=@Subject_ID", con);

            command.Parameters.AddWithValue("@PrefiPercent", newPercent);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.ExecuteNonQuery();
            con.Close();

            PrefiPercentToDecimal = PrefiPercent / 100;
            GetAndDisplayActivities();
        }
        public void EditSubject(SUBJECT changedSubject)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [SUBJECT] SET Subject_Code=@Subject_Code, Description=@Description, Schedule=@Schedule, Units=@Units, Base=@Base WHERE Subject_ID=@Subject_ID", con);

            command.Parameters.AddWithValue("@Subject_Code", changedSubject.SubjectCode);
            command.Parameters.AddWithValue("@Description", changedSubject.Description);
            command.Parameters.AddWithValue("@Schedule", changedSubject.Schedule);
            command.Parameters.AddWithValue("@Units", changedSubject.Units);
            command.Parameters.AddWithValue("@Base", changedSubject.Base);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplaySubjects();
        }
        public int ComputeMaxUnits()
        {
            int maxUnits = 0;

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [SUBJECT] WHERE SemID='" + ViewModelLocator.SemesterSelectViewModel.SelectedSemester.SemID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                maxUnits = maxUnits + Convert.ToInt16(dt.Rows[x]["Units"]);
            }

            return(maxUnits);
        }
        private void GetAndDisplayUsers()
        {
            ListUsers.Clear();

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT User_Name, UserID From [USERS]", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                USERS newUser = new USERS();

                newUser.UserID = Convert.ToInt16(dt.Rows[x]["UserID"]);
                newUser.User   = dt.Rows[x]["User_Name"].ToString();

                ListUsers.Add(newUser);
            }
        }
        private void GetAndDisplaySemesters()
        {
            ListSemesters.Clear();

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [SEMESTER] WHERE UserID='" + ViewModelLocator.MainWindowViewModel.SelectedUser.UserID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                SEMESTER newSemester = new SEMESTER();

                newSemester.SemesterName = dt.Rows[x]["Semester_Name"].ToString();
                newSemester.MaxUnits     = Convert.ToInt16(dt.Rows[x]["Max_Units"]);
                newSemester.Schoolyear   = dt.Rows[x]["Schoolyear"].ToString();
                newSemester.SemID        = Convert.ToInt16(dt.Rows[x]["SemID"]);

                ListSemesters.Add(newSemester);
            }
        }
        public void AddNewSubject(SUBJECT newSubject)
        {
            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("INSERT INTO [SUBJECT] (Subject_Code, Description, Schedule, Units, SemID, PrelimPercent, MidtermPercent, PrefiPercent, Base, Grade, PrelimLetterGrade, MidtermLetterGrade, PrefiLetterGrade) VALUES (@Subject_Code, @Description, @Schedule, @Units, @SemID, @PrelimPercent, @MidtermPercent, @PrefiPercent, @Base, @Grade, @PrelimLetterGrade, @MidtermLetterGrade, @PrefiLetterGrade)", con);

            command.Parameters.AddWithValue("@Subject_Code", newSubject.SubjectCode);
            command.Parameters.AddWithValue("@Description", newSubject.Description);
            command.Parameters.AddWithValue("@Schedule", newSubject.Schedule);
            command.Parameters.AddWithValue("@Units", newSubject.Units);
            command.Parameters.AddWithValue("@SemID", ViewModelLocator.SemesterSelectViewModel.SelectedSemester.SemID);
            command.Parameters.AddWithValue("@PrelimPercent", 0);
            command.Parameters.AddWithValue("@MidtermPercent", 0);
            command.Parameters.AddWithValue("@PrefiPercent", 0);
            command.Parameters.AddWithValue("@Grade", 0);
            command.Parameters.AddWithValue("@PrelimLetterGrade", "-");
            command.Parameters.AddWithValue("@MidtermLetterGrade", "-");
            command.Parameters.AddWithValue("@PrefiLetterGrade", "-");
            command.Parameters.AddWithValue("@Base", newSubject.Base);
            command.ExecuteNonQuery();
            con.Close();

            GetAndDisplaySubjects();
        }
        public void GetLetterGrade()
        {
            if (PrelimComponentsPercentTotal == 100)
            {
                if (PrelimGrade <= 71.49)
                {
                    PrelimLetterGrade = "F";
                }

                else if (PrelimGrade > 71.49 && PrelimGrade <= 75.49)
                {
                    PrelimLetterGrade = "D";
                }

                else if (PrelimGrade > 75.49 && PrelimGrade <= 79.49)
                {
                    PrelimLetterGrade = "C";
                }

                else if (PrelimGrade > 79.49 && PrelimGrade <= 83.49)
                {
                    PrelimLetterGrade = "C+";
                }

                else if (PrelimGrade > 83.49 && PrelimGrade <= 87.49)
                {
                    PrelimLetterGrade = "B";
                }

                else if (PrelimGrade > 87.49 && PrelimGrade <= 91.49)
                {
                    PrelimLetterGrade = "B+";
                }

                else if (PrelimGrade > 91.49)
                {
                    PrelimLetterGrade = "A";
                }
            }
            else
            {
                PrelimLetterGrade = "-";
            }

            if (MidtermComponentsPercentTotal == 100)
            {
                if (MidtermGrade <= 71.49)
                {
                    MidtermLetterGrade = "F";
                }

                else if (MidtermGrade > 71.49 && MidtermGrade <= 75.49)
                {
                    MidtermLetterGrade = "D";
                }

                else if (MidtermGrade > 75.49 && MidtermGrade <= 79.49)
                {
                    MidtermLetterGrade = "C";
                }

                else if (MidtermGrade > 79.49 && MidtermGrade <= 83.49)
                {
                    MidtermLetterGrade = "C+";
                }

                else if (MidtermGrade > 83.49 && MidtermGrade <= 87.49)
                {
                    MidtermLetterGrade = "B";
                }

                else if (MidtermGrade > 87.49 && MidtermGrade <= 91.49)
                {
                    MidtermLetterGrade = "B+";
                }

                else if (MidtermGrade > 91.49)
                {
                    MidtermLetterGrade = "A";
                }
            }
            else
            {
                MidtermLetterGrade = "-";
            }

            if (PrefiComponentsPercentTotal == 100)
            {
                if (PrefiGrade <= 71.49)
                {
                    PrefiLetterGrade = "F";
                }

                else if (PrefiGrade > 71.49 && PrefiGrade <= 75.49)
                {
                    PrefiLetterGrade = "D";
                }

                else if (PrefiGrade > 75.49 && PrefiGrade <= 79.49)
                {
                    PrefiLetterGrade = "C";
                }

                else if (PrefiGrade > 79.49 && PrefiGrade <= 83.49)
                {
                    PrefiLetterGrade = "C+";
                }

                else if (PrefiGrade > 83.49 && PrefiGrade <= 87.49)
                {
                    PrefiLetterGrade = "B";
                }

                else if (PrefiGrade > 87.49 && PrefiGrade <= 91.49)
                {
                    PrefiLetterGrade = "B+";
                }

                else if (PrefiGrade > 91.49)
                {
                    PrefiLetterGrade = "A";
                }
            }
            else
            {
                PrefiLetterGrade = "-";
            }

            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [SUBJECT] SET PrelimLetterGrade=@PrelimLetterGrade, MidtermLetterGrade=@MidtermLetterGrade, PrefiLetterGrade=@PrefiLetterGrade WHERE Subject_ID=@Subject_ID", con);

            command.Parameters.AddWithValue("@PrelimLetterGrade", PrelimLetterGrade);
            command.Parameters.AddWithValue("@MidtermLetterGrade", MidtermLetterGrade);
            command.Parameters.AddWithValue("@PrefiLetterGrade", PrefiLetterGrade);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.ExecuteNonQuery();
            con.Close();
        }
Ejemplo n.º 22
0
        public void GetAndDisplayGrades()
        {
            ListSubjects.Clear();

            SqlConnection  con  = GeneralMethods.ConnectToDatabase();
            SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * From [SUBJECT] WHERE SemID='" + ViewModelLocator.SemesterSelectViewModel.SelectedSemester.SemID + "'", con);
            DataTable      dt   = new DataTable();

            sda2.Fill(dt);
            con.Close();

            for (int x = 0; x < dt.Rows.Count; x++)
            {
                SUBJECT newSubject = new SUBJECT();

                newSubject.Description        = dt.Rows[x]["Description"].ToString();
                newSubject.Grade              = Convert.ToDouble(dt.Rows[x]["Grade"]);
                newSubject.PrelimLetterGrade  = dt.Rows[x]["PrelimLetterGrade"].ToString();
                newSubject.MidtermLetterGrade = dt.Rows[x]["MidtermLetterGrade"].ToString();
                newSubject.PrefiLetterGrade   = dt.Rows[x]["PrefiLetterGrade"].ToString();
                newSubject.Units              = Convert.ToInt16(dt.Rows[x]["Units"]);

                if (newSubject.Grade <= 71.49)
                {
                    newSubject.FinalLetterGrade = "F";
                }

                else if (newSubject.Grade > 71.49 && newSubject.Grade <= 75.49)
                {
                    newSubject.FinalLetterGrade = "D";
                }

                else if (newSubject.Grade > 75.49 && newSubject.Grade <= 79.49)
                {
                    newSubject.FinalLetterGrade = "C";
                }

                else if (newSubject.Grade > 79.49 && newSubject.Grade <= 83.49)
                {
                    newSubject.FinalLetterGrade = "C+";
                }

                else if (newSubject.Grade > 83.49 && newSubject.Grade <= 87.49)
                {
                    newSubject.FinalLetterGrade = "B";
                }

                else if (newSubject.Grade > 87.49 && newSubject.Grade <= 91.49)
                {
                    newSubject.FinalLetterGrade = "B+";
                }

                else if (newSubject.Grade > 91.49)
                {
                    newSubject.FinalLetterGrade = "A";
                }

                ListSubjects.Add(newSubject);
            }

            ComputeQPI();
        }
        public void ComputeConvertedGrades()
        {
            if (PrelimComponentsPercentTotal == 100)
            {
                PrelimConvertedGrade = PrelimGrade * PrelimPercentToDecimal;
            }
            else
            {
                PrelimConvertedGrade = 0;
            }

            if (MidtermComponentsPercentTotal == 100)
            {
                MidtermConvertedGrade = MidtermGrade * MidtermPercentToDecimal;
            }
            else
            {
                MidtermConvertedGrade = 0;
            }

            if (PrefiComponentsPercentTotal == 100)
            {
                PrefiConvertedGrade = PrefiGrade * PrefiPercentToDecimal;
            }
            else
            {
                PrefiConvertedGrade = 0;
            }

            FinalGrade = PrelimConvertedGrade + MidtermConvertedGrade + PrefiConvertedGrade;

            if (FinalGrade <= 71.49)
            {
                FinalLetterGrade = "F";
            }

            else if (FinalGrade > 71.49 && FinalGrade <= 75.49)
            {
                FinalLetterGrade = "D";
            }

            else if (FinalGrade > 75.49 && FinalGrade <= 79.49)
            {
                FinalLetterGrade = "C";
            }

            else if (FinalGrade > 79.49 && FinalGrade <= 83.49)
            {
                FinalLetterGrade = "C+";
            }

            else if (FinalGrade > 83.49 && FinalGrade <= 87.49)
            {
                FinalLetterGrade = "B";
            }

            else if (FinalGrade > 87.49 && FinalGrade <= 91.49)
            {
                FinalLetterGrade = "B+";
            }

            else if (FinalGrade > 91.49)
            {
                FinalLetterGrade = "A";
            }

            SqlConnection con     = GeneralMethods.ConnectToDatabase();
            SqlCommand    command = new SqlCommand("UPDATE [SUBJECT] SET Grade=@Grade WHERE Subject_ID=@Subject_ID", con);

            command.Parameters.AddWithValue("@Grade", FinalGrade);
            command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
            command.ExecuteNonQuery();
            con.Close();
        }
        public void CopyComponents(string from, string to)
        {
            if (from == "prelim" && to == "both")
            {
                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("DELETE FROM [ACTIVITY] WHERE Subject_ID=@Subject_ID, Grading_Period=@Grading_Period", con);
                command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
                command.Parameters.AddWithValue("@Grading_Period", "midterm");
                command.ExecuteNonQuery();
                con.Close();

                con.Open();
                SqlCommand command2 = new SqlCommand("DELETE FROM [ACTIVITY] WHERE Subject_ID=@Subject_ID, Grading_Period=@Grading_Period", con);
                command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
                command.Parameters.AddWithValue("@Grading_Period", "prefi");
                command.ExecuteNonQuery();
                con.Close();

                con.Open();

                for (int x = 0; x < PrelimListActivity.Count; x++)
                {
                    SqlCommand command3 = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grading_Type, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grading_Type, @Grade)", con);
                    command.Parameters.AddWithValue("@Activity", PrelimListActivity[x].Activity);
                    command.Parameters.AddWithValue("@Percentage", PrelimListActivity[x].Percentage);
                    command.Parameters.AddWithValue("@Subject_ID", PrelimListActivity[x].SubjectID);
                    command.Parameters.AddWithValue("@Grading_Period", "midterm");
                    command.Parameters.AddWithValue("@Grade", 0);
                    command.ExecuteNonQuery();
                }
                con.Close();

                con.Open();

                for (int x = 0; x < PrelimListActivity.Count; x++)
                {
                    SqlCommand command3 = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grading_Type, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grading_Type, @Grade)", con);
                    command.Parameters.AddWithValue("@Activity", PrelimListActivity[x].Activity);
                    command.Parameters.AddWithValue("@Percentage", PrelimListActivity[x].Percentage);
                    command.Parameters.AddWithValue("@Subject_ID", PrelimListActivity[x].SubjectID);
                    command.Parameters.AddWithValue("@Grading_Period", "prefi");
                    command.Parameters.AddWithValue("@Grade", 0);
                    command.ExecuteNonQuery();
                }
                con.Close();

                GetAndDisplayActivities();
            }

            if (from == "prelim" && to == "midterm")
            {
                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("DELETE FROM [ACTIVITY] WHERE Subject_ID=@Subject_ID, Grading_Period=@Grading_Period", con);
                command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
                command.Parameters.AddWithValue("@Grading_Period", "midterm");
                command.ExecuteNonQuery();
                con.Close();

                con.Open();

                for (int x = 0; x < PrelimListActivity.Count; x++)
                {
                    SqlCommand command3 = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grading_Type, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grading_Type, @Grade)", con);
                    command.Parameters.AddWithValue("@Activity", PrelimListActivity[x].Activity);
                    command.Parameters.AddWithValue("@Percentage", PrelimListActivity[x].Percentage);
                    command.Parameters.AddWithValue("@Subject_ID", PrelimListActivity[x].SubjectID);
                    command.Parameters.AddWithValue("@Grading_Period", "midterm");
                    command.Parameters.AddWithValue("@Grade", 0);
                    command.ExecuteNonQuery();
                }
                con.Close();

                GetAndDisplayActivities();
            }

            if (from == "prelim" && to == "prefi")
            {
                SqlConnection con     = GeneralMethods.ConnectToDatabase();
                SqlCommand    command = new SqlCommand("DELETE FROM [ACTIVITY] WHERE Subject_ID=@Subject_ID, Grading_Period=@Grading_Period", con);
                command.Parameters.AddWithValue("@Subject_ID", ViewModelLocator.SubjectsListViewModel.SelectedSubject.SubjectID);
                command.Parameters.AddWithValue("@Grading_Period", "prefi");
                command.ExecuteNonQuery();
                con.Close();

                con.Open();

                for (int x = 0; x < PrelimListActivity.Count; x++)
                {
                    SqlCommand command3 = new SqlCommand("INSERT INTO [ACTIVITY] (Activity, Percentage, Subject_ID, Grading_Period, Grading_Type, Grade) VALUES (@Activity, @Percentage, @Subject_ID, @Grading_Period, @Grading_Type, @Grade)", con);
                    command.Parameters.AddWithValue("@Activity", PrelimListActivity[x].Activity);
                    command.Parameters.AddWithValue("@Percentage", PrelimListActivity[x].Percentage);
                    command.Parameters.AddWithValue("@Subject_ID", PrelimListActivity[x].SubjectID);
                    command.Parameters.AddWithValue("@Grading_Period", "prefi");
                    command.Parameters.AddWithValue("@Grade", 0);
                    command.ExecuteNonQuery();
                }
                con.Close();

                GetAndDisplayActivities();
            }
        }