protected override void OnEndLoadNecessaryData(ReportBookPage.LoadNecessaryData result) { base.OnEndLoadNecessaryData(result); Rubrics = result.Rubrics; Publishers = result.Publishers; var rubrics = result.Rubrics.ToList(); rubrics.Insert(0, new Rubric() { Id = -1, Name = "Все" }); var publishers = result.Publishers.ToList(); publishers.Insert(0, new Publisher() { Id = -1, Name = "Все" }); RubricItem.Bind(rubrics, r => r.Name, Rubric); PublisherItem.Bind(publishers, p => p.Name, Publisher); }
/// <summary> /// Calculates the grade for the rubric type. /// </summary> /// <param name="items">The items.</param> /// <param name="rItem">The rubric item.</param> /// <returns></returns> public double CalculateTypeGrade(List <GradeItemGrade> items, RubricItem rItem) { int student = 0; int max = 0; foreach (var grade in items) { var gItem = this.GetGradeItem(grade.assignmentID); if (string.Equals(gItem.Type, rItem.AssignmentType, StringComparison.OrdinalIgnoreCase)) { if (grade.Graded == true) { student += grade.Grade; max += this.GetGradeItem(grade.assignmentID).MaxGrade; } } } double total = 0; if (max != 0) { total = (double)student / (double)max; total = total * 100.0; total = total * (double)rItem.GradeWeight; } return(total); }
/// <summary> /// Gets the assignment types by CRN. /// </summary> /// <param name="CRNCheck">The CRN of the selected course</param> /// <returns> A list of assignment types for the selected course</returns> public List <string> GetAssignmentTypesByCRN(int CRNCheck) { MySqlConnection conn = DbConnection.GetConnection(); using (conn) { conn.Open(); var selectQuery = "SELECT * FROM rubrics WHERE rubrics.CRN = @CRNCheck"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) { cmd.Parameters.AddWithValue("@CRNCheck", CRNCheck); using (MySqlDataReader reader = cmd.ExecuteReader()) { int assignmentTypesOrdinal = reader.GetOrdinal("assignment_types"); int weightPerTypeOrdinal = reader.GetOrdinal("weight_per_type"); int rubricIDOrdinal = reader.GetOrdinal("rubric_id"); while (reader.Read()) { int rubricID = reader[rubricIDOrdinal] == DBNull.Value ? default(int) : reader.GetInt32(rubricIDOrdinal); string assignmentTypes = reader[assignmentTypesOrdinal] == DBNull.Value ? default(string) : reader.GetString(assignmentTypesOrdinal); string weightPerType = reader[weightPerTypeOrdinal] == DBNull.Value ? default(string) : reader.GetString(weightPerTypeOrdinal); List <RubricItem> rubricStuff = new List <RubricItem>(); int assingmentCount = assignmentTypes.Split('/').Length - 1; int weightCount = weightPerType.Split('/').Length - 1; String[] types = new String[assingmentCount]; String[] weights = new String[weightCount]; if (assignmentTypes != default(string)) { types = assignmentTypes.Split('/'); } if (weightPerType != default(string)) { weights = weightPerType.Split('/'); } for (int i = 0; i < types.Length; i++) { if (!string.IsNullOrWhiteSpace(types[i])) { RubricItem rubricItem = new RubricItem(CRNCheck, types[i], Convert.ToInt32(weights[i]), i); rubricStuff.Add(rubricItem); } } List <String> gradeTypes = new List <string>(); foreach (var item in rubricStuff) { gradeTypes.Add(item.AssignmentType); } return(gradeTypes); } } } } return(null); }
public void TestRubricItemConstructor() { RubricItem item = new RubricItem(1, "homework", 25, 1); Assert.AreEqual(item.CRN, 1); Assert.AreEqual(item.AssignmentType, "homework"); Assert.AreEqual(item.AssignmentWeight, 25); Assert.AreEqual(item.Index, 1); }
private void RubricDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (this.rubricDataGrid.SelectedItem is RubricItem rubricItem) { this.originalItem = rubricItem; this.assignmentTypeBox.Text = originalItem.AssignmentType; this.assignmentWeightBox.Text = originalItem.AssignmentWeight.ToString(); } }
public void GetCourseRubricByCRN(int CRNCheck, DataGrid grid) { if (CRNCheck <= 0) { throw new Exception("CRNCheck must be greater than or equal to 0"); } MySqlConnection dbConnection = DbConnection.GetConnection(); using (dbConnection) { dbConnection.Open(); var selectQuery = "SELECT * FROM rubrics WHERE rubrics.CRN = @CRNCheck"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection)) { cmd.Parameters.AddWithValue("@CRNCheck", CRNCheck); using (MySqlDataReader reader = cmd.ExecuteReader()) { int assignmentTypesOrdinal = reader.GetOrdinal("assignment_types"); int weightPerTypeOrdinal = reader.GetOrdinal("weight_per_type"); int rubricIDOrdinal = reader.GetOrdinal("rubric_id"); while (reader.Read()) { int rubricID = reader[rubricIDOrdinal] == DBNull.Value ? default(int) : reader.GetInt32(rubricIDOrdinal); string assignmentTypes = reader[assignmentTypesOrdinal] == DBNull.Value ? default(string) : reader.GetString(assignmentTypesOrdinal); string weightPerType = reader[weightPerTypeOrdinal] == DBNull.Value ? default(string) : reader.GetString(weightPerTypeOrdinal); List <RubricItem> rubricStuff = new List <RubricItem>(); int assingmentCount = assignmentTypes.Split('/').Length - 1; int weightCount = weightPerType.Split('/').Length - 1; String[] types = new String[assingmentCount]; String[] weights = new String[weightCount]; if (assignmentTypes != default(string)) { types = assignmentTypes.Split('/'); } if (weightPerType != default(string)) { weights = weightPerType.Split('/'); } for (int i = 0; i < types.Length; i++) { if (!string.IsNullOrWhiteSpace(types[i])) { RubricItem rubricItem = new RubricItem(CRNCheck, types[i], Convert.ToInt32(weights[i]), i); rubricStuff.Add(rubricItem); } } } } } } }
public void UpdateCourseRubric(int crn, string assignmentType, int assignmentWeight, string original_AssignmentType, int original_AssignmentWeight, int index, int original_Index, int original_Crn) { List <RubricItem> rubric = GetCourseRubricByCRN(original_Crn); RubricItem original_item = rubric.Find(x => x.AssignmentType.Equals(original_AssignmentType) && x.AssignmentWeight == original_AssignmentWeight); string assignment_types = ""; string weight_per_types = ""; for (int i = 0; i < rubric.Count; i++) { if (i == original_item.Index && i != rubric.Count - 1) { assignment_types += assignmentType + "/"; weight_per_types += assignmentWeight + "/"; } else if (i != rubric.Count - 1) { assignment_types += rubric[i].AssignmentType + "/"; weight_per_types += rubric[i].AssignmentWeight + "/"; } else if (original_item.Index == i && i == rubric.Count - 1) { assignment_types += assignmentType; weight_per_types += assignmentWeight; } else { assignment_types += rubric[i].AssignmentType; weight_per_types += rubric[i].AssignmentWeight; } } MySqlConnection dbConnection = DbConnection.GetConnection(); using (dbConnection) { dbConnection.Open(); var selectQuery = "UPDATE rubrics SET assignment_types=@assignment_types, weight_per_type=@weight_per_type WHERE CRN = @CRN"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection)) { cmd.Parameters.AddWithValue("@assignment_types", assignment_types); cmd.Parameters.AddWithValue("@weight_per_type", weight_per_types); cmd.Parameters.AddWithValue("@CRN", original_Crn); cmd.ExecuteNonQuery(); } dbConnection.Close(); } }
public void TestRubricItemProperties() { RubricItem item = new RubricItem(1, "homework", 25, 1); item.CRN = 3; item.AssignmentType = "projects"; item.AssignmentWeight = 40; item.Index = 5; Assert.AreEqual(item.CRN, 3); Assert.AreEqual(item.AssignmentType, "projects"); Assert.AreEqual(item.AssignmentWeight, 40); Assert.AreEqual(item.Index, 5); }
protected void gvwWeights_RowDeleting(object sender, GridViewDeleteEventArgs e) { object[] itemParts = new object[4]; e.Values.Values.CopyTo(itemParts, 0); int CRN = int.Parse((string)itemParts[1]); string assignmentType = (string)itemParts[2]; int weight = int.Parse((string)itemParts[3]); int index = int.Parse((string)itemParts[0]); RubricItem item = new RubricItem(CRN, assignmentType, weight, index); HttpContext.Current.Session["RubricItemToDelete"] = item; }
public void InsertCourseRubric(string assignmentType, int assignmentWeight, int crn) { if (assignmentType == null) { throw new Exception("Assignment type cannot be null"); } if (assignmentWeight < 0) { throw new Exception("Assignment weight must be greater than or equal to zero"); } List <RubricItem> rubric = GetCourseRubricByCRN(crn); RubricItem item = new RubricItem(crn, assignmentType, assignmentWeight, rubric.Count); rubric.Add(item); string assignment_types = ""; string weight_per_types = ""; for (int i = 0; i < rubric.Count - 1; i++) { assignment_types += rubric[i].AssignmentType + "/"; weight_per_types += rubric[i].AssignmentWeight + "/"; } assignment_types += item.AssignmentType; weight_per_types += item.AssignmentWeight; MySqlConnection dbConnection = DbConnection.GetConnection(); using (dbConnection) { dbConnection.Open(); var updateQuery = "UPDATE rubrics SET assignment_types=@assignment_types, weight_per_type=@weight_per_type WHERE CRN = @CRN"; using (MySqlCommand cmd = new MySqlCommand(updateQuery, dbConnection)) { cmd.Parameters.AddWithValue("@assignment_types", assignment_types); cmd.Parameters.AddWithValue("@weight_per_type", weight_per_types); cmd.Parameters.AddWithValue("@CRN", crn); cmd.ExecuteNonQuery(); } dbConnection.Close(); } }
protected override void OnEndLoadNecessaryData(BookPage.LoadNecessaryData result) { base.OnEndLoadNecessaryData(result); Rubrics = result.Rubrics; Publishers = result.Publishers; Authors = result.Authors; var rubrics = result.Rubrics.ToList(); rubrics.Insert(0, new Rubric() { Id = -1, Name = "Все" }); var publishers = result.Publishers.ToList(); publishers.Insert(0, new Publisher() { Id = -1, Name = "Все" }); var authors = result.Authors.ToList(); authors.Insert(0, new Author() { Id = -1, FirstName = "Все", LastName = "", MiddleName = "" }); RubricItem.Bind(rubrics, r => r.Name, Rubric); PublisherItem.Bind(publishers, p => p.Name, Publisher); AuthorItem.Bind(authors, a => string.Format("{0} {1} {2}", a.LastName, a.FirstName, a.MiddleName), Author); }
/// <summary> /// Inserts the course rubric. /// </summary> /// <param name="assignmentType">Type of the assignment.</param> /// <param name="assignmentWeight">The assignment weight.</param> /// public void InsertCourseRubric(int crn, string assignmentType, int assignmentWeight) { List <RubricItem> rubric = GetCourseRubricByCRN(crn); RubricItem item = new RubricItem(crn, assignmentType, assignmentWeight, rubric.Count); rubric.Add(item); string assignment_types = ""; string weight_per_types = ""; for (int i = 0; i < rubric.Count - 1; i++) { assignment_types += rubric[i].AssignmentType + "/"; weight_per_types += rubric[i].AssignmentWeight + "/"; } assignment_types += item.AssignmentType; weight_per_types += item.AssignmentWeight; MySqlConnection conn = DbConnection.GetConnection(); using (conn) { conn.Open(); var selectQuery = "UPDATE rubrics SET assignment_types=@assignment_types, weight_per_type=@weight_per_type WHERE CRN = @CRN"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) { cmd.Parameters.AddWithValue("@assignment_types", assignment_types); cmd.Parameters.AddWithValue("@weight_per_type", weight_per_types); cmd.Parameters.AddWithValue("@CRN", crn); cmd.ExecuteNonQuery(); } conn.Close(); } }
public bool DeleteCourseRubric(int crn, string assignmentType, int assignmentWeight, string original_AssignmentType, int original_AssignmentWeight, int index, int original_Index, int original_Crn) { List <RubricItem> rubric = GetCourseRubricByCRN(original_Crn); RubricItem original_item = rubric.Find(x => x.AssignmentType.Equals(original_AssignmentType) && x.AssignmentWeight == original_AssignmentWeight); bool canDelete = false; MySqlConnection dbConnection = DbConnection.GetConnection(); using (dbConnection) { dbConnection.Open(); var selectQuery = "SELECT * from grade_defs WHERE grade_defs.grade_type = @type_to_check AND grade_defs.course_CRN = @CRNCheck"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection)) { cmd.Parameters.AddWithValue("@type_to_check", original_item.AssignmentType); cmd.Parameters.AddWithValue("@CRNCheck", original_Crn); using (MySqlDataReader reader = cmd.ExecuteReader()) { int totalPointsOrdinal = reader.GetOrdinal("grade_total_points"); int gradeTypeOrdinal = reader.GetOrdinal("grade_type"); if (reader.Read()) { canDelete = false; } else { canDelete = true; } } dbConnection.Close(); } } if (canDelete) { string assignment_types = ""; string weight_per_types = ""; for (int i = 0; i < rubric.Count; i++) { if (i == original_item.Index && i == rubric.Count - 1) { if (assignment_types.Length > 1) { assignment_types = assignment_types.Substring(0, assignment_types.Length - 1); weight_per_types = weight_per_types.Substring(0, weight_per_types.Length - 1); } } else if (i == original_item.Index) { } else if (i != rubric.Count - 1) { assignment_types += rubric[i].AssignmentType + "/"; weight_per_types += rubric[i].AssignmentWeight + "/"; } else { assignment_types += rubric[i].AssignmentType; weight_per_types += rubric[i].AssignmentWeight; } } dbConnection = DbConnection.GetConnection(); using (dbConnection) { dbConnection.Open(); var selectQuery = "UPDATE rubrics SET assignment_types=@assignment_types, weight_per_type=@weight_per_type WHERE CRN = @CRN"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, dbConnection)) { cmd.Parameters.AddWithValue("@assignment_types", assignment_types); cmd.Parameters.AddWithValue("@weight_per_type", weight_per_types); cmd.Parameters.AddWithValue("@CRN", original_item.CRN); cmd.ExecuteNonQuery(); } dbConnection.Close(); } } return(canDelete); }
/// <summary> /// Updates the course rubric. /// </summary> /// <param name="crn">The CRN.</param> /// <param name="assignmentType">Type of the assignment.</param> /// <param name="assignmentWeight">The assignment weight.</param> /// <param name="original_AssignmentType">Type of the original assignment.</param> /// <param name="original_AssignmentWeight">The original assignment weight.</param> /// <param name="index">The index.</param> /// <param name="original_Index">Index of the original.</param> /// <param name="original_Crn">The original CRN.</param> public void UpdateCourseRubric(int crn, string assignmentType, int assignmentWeight, string original_AssignmentType, int original_AssignmentWeight, int index, int original_Index, int original_Crn) { List <RubricItem> rubric = GetCourseRubricByCRN(crn); RubricItem original_item = rubric.Find(x => x.AssignmentType.Equals(original_AssignmentType) && x.AssignmentWeight == original_AssignmentWeight); string assignment_types = ""; string weight_per_types = ""; for (int i = 0; i < rubric.Count; i++) { if (i == original_item.Index && i != rubric.Count - 1) { assignment_types += assignmentType + "/"; weight_per_types += assignmentWeight + "/"; } else if (i != rubric.Count - 1) { assignment_types += rubric[i].AssignmentType + "/"; weight_per_types += rubric[i].AssignmentWeight + "/"; } else if (original_item.Index == i && i == rubric.Count - 1) { assignment_types += assignmentType; weight_per_types += assignmentWeight; } else { assignment_types += rubric[i].AssignmentType; weight_per_types += rubric[i].AssignmentWeight; } } MySqlConnection conn = DbConnection.GetConnection(); using (conn) { conn.Open(); var selectQuery = "UPDATE rubrics SET assignment_types=@assignment_types, weight_per_type=@weight_per_type WHERE CRN = @CRN"; using (MySqlCommand cmd = new MySqlCommand(selectQuery, conn)) { cmd.Parameters.AddWithValue("@assignment_types", assignment_types); cmd.Parameters.AddWithValue("@weight_per_type", weight_per_types); cmd.Parameters.AddWithValue("@CRN", crn); cmd.ExecuteNonQuery(); } StudentDAL studentGetter = new StudentDAL(); List <Student> students = studentGetter.GetStudentsByCRN(crn); foreach (var student in students) { var updateQuery = "UPDATE grade_items SET grade_type = @newType WHERE grade_item_id = (SELECT grade_items.grade_item_id FROM grade_belongs_to_courses WHERE grade_belongs_to_courses.courses_CRN = @CRN AND grade_belongs_to_courses.grade_item_id = grade_items.grade_item_id AND grade_items.grade_type = @oldType AND grade_items.student_uid = @studentUID)"; using (MySqlCommand cmd = new MySqlCommand(updateQuery, conn)) { cmd.Parameters.AddWithValue("@newType", assignmentType); cmd.Parameters.AddWithValue("@oldType", original_AssignmentType); cmd.Parameters.AddWithValue("@CRN", crn); cmd.Parameters.AddWithValue("@studentUID", student.StudentUID); cmd.ExecuteNonQuery(); } } conn.Close(); } }