/// <summary> /// Grades the graded item by CRN and student uid. /// </summary> /// <param name="newItem">The new item.</param> /// <param name="CRN">The CRN.</param> /// <param name="studentUID">The student uid.</param> public void gradeGradedItemByCRNAndStudentUID(GradedItem newItem, int CRN, string studentUID) { StudentDAL studentGetter = new StudentDAL(); Student currStudent = studentGetter.GetStudentByStudentID(studentUID); MySqlConnection conn = DbConnection.GetConnection(); using (conn) { conn.Open(); GradedItem grade = new GradedItem(newItem.Name, currStudent, newItem.Grade, newItem.Feedback, newItem.PossiblePoints, newItem.GradeType, 0, newItem.IsPublic, newItem.TimeGraded); var selectQuery = "UPDATE grade_items SET grade_earned_points=@grade_points, grade_feedback=@grade_feedback, time_graded=@time_graded WHERE student_uid = @studentUID AND grade_name = @grade_name"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) { cmd.Parameters.AddWithValue("@studentUID", studentUID); cmd.Parameters.AddWithValue("@grade_points", grade.Grade); cmd.Parameters.AddWithValue("@grade_name", grade.Name); cmd.Parameters.AddWithValue("@grade_feedback", grade.Feedback); cmd.Parameters.AddWithValue("@time_graded", DateTime.Now); cmd.ExecuteNonQuery(); } } conn.Close(); }
/// <summary> /// Gets the graded items by CRN and grade name for all students. /// </summary> /// <param name="CRNCheck">The CRN check.</param> /// <param name="gradeName">Name of the grade.</param> /// <returns>A list of graded Items by crn and name of the grade</returns> public List <GradedItem> GetGradedItemsByCRNAndGradeNameForAllStudents(int CRNCheck, string gradeName) { MySqlConnection conn = DbConnection.GetConnection(); var grades = new List <GradedItem>(); using (conn) { conn.Open(); var selectQuery = "SELECT * FROM grade_items,grade_belongs_to_courses WHERE grade_items.grade_item_id = grade_belongs_to_courses.grade_item_id AND grade_belongs_to_courses.courses_CRN = @CRNCheck AND grade_name = @grade_name"; var studentGetter = new StudentDAL(); using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) { cmd.Parameters.AddWithValue("@CRNCheck", CRNCheck); cmd.Parameters.AddWithValue("@grade_name", gradeName); using (MySqlDataReader reader = cmd.ExecuteReader()) { int studentIdOrdinal = reader.GetOrdinal("student_uid"); int totalPointsOrdinal = reader.GetOrdinal("grade_total_points"); int gradeEarnedOrdinal = reader.GetOrdinal("grade_earned_points"); int gradeTypeOrdinal = reader.GetOrdinal("grade_type"); int gradeFeedbackOrdinal = reader.GetOrdinal("grade_feedback"); int gradeItemIdOrdinal = reader.GetOrdinal("grade_item_id"); int isPublicOrdinal = reader.GetOrdinal("is_public"); int timeGradedOrdinal = reader.GetOrdinal("time_graded"); while (reader.Read()) { var studentUID = reader[studentIdOrdinal] == DBNull.Value ? default(string) : reader.GetString(studentIdOrdinal); var totalPoints = reader[totalPointsOrdinal] == DBNull.Value ? default(int) : reader.GetInt32(totalPointsOrdinal); var gradeEarned = reader[gradeEarnedOrdinal] == DBNull.Value ? default(int) : reader.GetInt32(gradeEarnedOrdinal); var gradeType = reader[gradeTypeOrdinal] == DBNull.Value ? default(string) : reader.GetString(gradeTypeOrdinal); var gradeFeedback = reader[gradeFeedbackOrdinal] == DBNull.Value ? default(string) : reader.GetString(gradeFeedbackOrdinal); var gradeItemId = reader[gradeItemIdOrdinal] == DBNull.Value ? default(int) : reader.GetInt32(gradeItemIdOrdinal); var isPublic = reader[isPublicOrdinal] != DBNull.Value && reader.GetBoolean(isPublicOrdinal); DateTime?timeGraded = reader[gradeFeedbackOrdinal] == DBNull.Value ? default(DateTime) : reader.GetDateTime(timeGradedOrdinal); if (timeGraded == DateTime.MinValue) { timeGraded = null; } var currStudent = studentGetter.GetStudentByStudentID(studentUID); var currGradedItem = new GradedItem(gradeName, currStudent, gradeEarned, gradeFeedback, totalPoints, gradeType, gradeItemId, isPublic, timeGraded); grades.Add(currGradedItem); } return(grades); } } } }