public GradingItemForm(Response r, Criteria criteria, Student student) { Cancelled = true; // fail closed rather than open GraderResponse = r; InitializeComponent(); studentNameLabel.Text = string.Format("{0}, {1}", student.LastName, student.FirstName); criteriaDescLabel.Text = criteria.Description; pointsReceivedNumericUpDown.Maximum = criteria.MaxPoints; pointsReceivedNumericUpDown.Minimum = 0; if (GraderResponse.PointsReceived < 0) { GraderResponse.PointsReceived = 0; } else if (GraderResponse.PointsReceived > criteria.MaxPoints) { GraderResponse.PointsReceived = criteria.MaxPoints; } pointsReceivedNumericUpDown.Value = GraderResponse.PointsReceived; maxPointsLabel.Text = string.Format("Pts out of {0} Pts", criteria.MaxPoints.ToString()); graderCommentTextBox.Text = GraderResponse.GraderComment; }
public RubricNode(Criteria c) { Criteria = c; Children = new LinkedList<int>(); }
/// <summary> /// Adds a new node to the given parent. /// </summary> /// <param name="c">A criteria with a key given by the database. The criteria should have a key already (it should not be NoID).</param> /// <param name="parentKey">The valid parent key that the node should be added to.</param> /// <returns>The criterias key (which references it in the dictionary as well as the DB).</returns> public int AddNewNode(Criteria c, int parentKey) { RubricNode parentNode; if (Nodes.TryGetValue(parentKey, out parentNode)) { Nodes.Add(c.CriteriaID, new RubricNode(c)); parentNode.Children.AddLast(c.CriteriaID); return c.CriteriaID; } else { // The parent doesn't exist in the dictionary! return -1; } }
/// <summary> /// Takes a Criteria and creates a new CriteriaTreeNode at the root of the collection. /// </summary> /// <param name="c">A criteria with a key given by the database. The criteria should have a key already (it should not be NoID).</param> /// <returns>The criterias key (which references it in the dictionary as well as the DB).</returns> public int AddNewNode(Criteria c) { RubricNode node = new RubricNode(c); Nodes.Add(node.Criteria.CriteriaID, node); RootNodes.AddLast(node.Criteria.CriteriaID); return node.Criteria.CriteriaID; }
private void setCriteria(LinkedList<CriteriaNode> list) { Criteria criteria; foreach (CriteriaNode c in list) { criteria = new Criteria(); criteria.Description = c.Description; criteria.MaxPoints = c.Points; if (c.NumberOfChildren > 0) { setCriteria(c.ChildList); } // TODO: save criteria to the database... :D } }
private void setCriteria(TreeNodeCollection tree, int parentID, int assignmentID) { Criteria criteria; foreach (CriteriaNode c in tree) { criteria = new Criteria(); criteria.Description = c.Description; if (c.Nodes.Count > 0) { criteria.MaxPoints = 0; } else { criteria.MaxPoints = c.Points; } int criteriaID = dbConnention.AddCriteria(criteria,parentID,assignmentID); setCriteria(c.Nodes, criteriaID, assignmentID); } }
public int AddCriteria(Criteria criteria, int parentID, int assignmentID) { if (criteria.HasID()) { Debug.WriteLine("You should not add criteria if it already has an ID assigned."); return criteria.CriteriaID; } else { // We need to insert rather than update because the criteria has no key. string query = String.Format("INSERT INTO {0} (", tables.Criteria.TableName); query += String.Format("{0}, ", tables.Criteria.Description); query += String.Format("{0}, ", tables.Criteria.Points); if (parentID != -1) { query += String.Format("{0}, ", tables.Criteria.ParentCriteriaID); } query += String.Format("{0}", tables.Criteria.AssignmentID); query += ") VALUES ("; query += String.Format("@{0}, ", tables.Criteria.Description); query += String.Format("@{0}, ", tables.Criteria.Points); if (parentID != -1) { query += String.Format("@{0}, ", tables.Criteria.ParentCriteriaID); } query += String.Format("@{0}", tables.Criteria.AssignmentID); query += ");"; OleDbCommand insert = new OleDbCommand(query, dbConnection); insert.Parameters.Add(new OleDbParameter("@" + tables.Criteria.Description, OleDbType.VarChar)).Value = criteria.Description; insert.Parameters.Add(new OleDbParameter("@" + tables.Criteria.Points, OleDbType.VarChar)).Value = criteria.MaxPoints; if(parentID != -1){ insert.Parameters.Add(new OleDbParameter("@" + tables.Criteria.ParentCriteriaID, OleDbType.VarChar)).Value = parentID; } insert.Parameters.Add(new OleDbParameter("@" + tables.Criteria.AssignmentID, OleDbType.VarChar)).Value = assignmentID; try { insert.ExecuteNonQuery(); } catch { Debug.WriteLine("Could not insert criteria."); } // Now that we inserted the student, we need to get its ID query = "SELECT @@IDENTITY;"; OleDbCommand getID = new OleDbCommand(query, dbConnection); int key = criteria.CriteriaID; try { key = (int)getID.ExecuteScalar(); } catch { Debug.WriteLine("Could not retrieve criteria ID."); } return key; } }
private void setCriteria(LinkedList<CriteriaNode> list, int assignid) { Criteria criteria; foreach (CriteriaNode c in list) { criteria = new Criteria(); criteria.Description = c.Description; criteria.MaxPoints = c.Points; c.CriteriaID = dbConnention.AddCriteria(criteria); if (c.NumberOfChildren > 0) { foreach (CriteriaNode cn in c.ChildList) { cn.ParentID = c.CriteriaID; } setCriteria(c.ChildList,assignid); } } }