public Message RemoveAssignment(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person remover = LoginManager.get(userName); // get id of person doing the adding
   int asid = (Integer) m.msg[0];
   int cid = ((Course) m.msg[1]).getCID(); // cid of course
   Assignment beingRemoved = LoginManager.getCourse(cid).getAssignment(asid);
   Course c = LoginManager.getCourse(cid);
   HashMap<Integer, Person> TAs = c.getTAs();
   if (c.removeAssignment(asid, remover.getPID()))
     rm = new Message(Message.Type.RemoveAssignmentResponse, true);
   else rm = new Message(Message.Type.RemoveAssignmentResponse, false);
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }
 private Message CourseRequest(Message m) {
   int sessID = (int) m.msg[m.msg.length - 1];
   Message rm = null;
   Object returnmsg = null;
   int cid = ((Course) m.msg[0]).getCID();
   Course course = LoginManager.getCourse(cid);
   returnmsg = course;
   rm = new Message(Message.Type.CourseResponse, returnmsg);
   network.sendMessage(rm, sessID);
   return rm;
 }
 private Message AddAssignment(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person adder = LoginManager.get(userName); // get id of person doing the adding
   String name = (String) m.msg[0];
   String desc = (String) m.msg[1];
   int cid = ((Course) m.msg[2]).getCID(); // cid of course
   Course c = LoginManager.getCourse(cid);
   HashMap<Integer, Person> TAs = c.getTAs();
   if (c.addAssignment(name, desc, adder.getPID()))
     rm = new Message(Message.Type.AddAssignmentResponse, true);
   else rm = new Message(Message.Type.AddAssignmentResponse, false);
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }
 private Message RemoveMember(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person remover = LoginManager.get(userName); // get id of person doing the removing
   String removeUsername = (String) m.msg[0];
   int cid = ((Course) m.msg[1]).getCID(); // cid of course
   Person beingRemoved = LoginManager.get((removeUsername));
   Course c = LoginManager.getCourse(cid);
   HashMap<Integer, Person> TAs = c.getTAs();
   if (c.removeFromRoster(beingRemoved, remover.getPID()))
     rm = new Message(Message.Type.RemoveMemberResponse, true);
   else rm = new Message(Message.Type.RemoveMemberResponse, false);
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }
 // grader requests
 private Message AddMember(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person adder = LoginManager.get(userName); // get id of person doing the adding
   String addUsername = (String) m.msg[0];
   int cid = ((Course) m.msg[2]).getCID(); // cid of course
   String type = (String) m.msg[1];
   Person beingAdded = LoginManager.get((addUsername));
   Course c = LoginManager.getCourse(cid);
   HashMap<Integer, Person> TAs = c.getTAs();
   boolean added = false;
   if (type.equals("Student")) added = c.addToRoster(beingAdded, adder.getPID());
   else if (type.equals("TA")) added = c.addToTAs(beingAdded, adder.getPID());
   else // is null or unknown ptype
   added = false;
   if (added) rm = new Message(Message.Type.AddMemberResponse, true);
   else rm = new Message(Message.Type.AddMemberResponse, false);
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }
 public Message EditAssignment(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person editor = LoginManager.get(userName); // get id of person doing the adding
   int asid = (Integer) m.msg[0];
   String newname = (String) m.msg[1];
   String newdesc = (String) m.msg[2];
   int cid = ((Course) m.msg[3]).getCID(); // cid of course
   Course c = LoginManager.getCourse(cid);
   Assignment editassign = c.getAssignment(asid);
   HashMap<Integer, Person> TAs = c.getTAs();
   if (editassign == null) {
     rm = new Message(Message.Type.EditAssignmentResponse, false);
   } else {
     editassign.setName(newname);
     editassign.setDesc(newdesc);
     rm = new Message(Message.Type.EditAssignmentResponse, true);
   }
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }
 private Message AssignmentRequest(Message m) { // never called apparently
   int sessID = (int) m.msg[m.msg.length - 1];
   int acid = ((Course) m.msg[1]).getCID();
   int asid = (Integer) m.msg[2];
   Assignment as = null;
   Message rm = null;
   Object returnmsg = null;
   try {
     LoginManager.getCourse(acid).getAssignment(asid);
   } catch (NullPointerException e) {
     System.out.println("Course no longer exists!"); // if you
     // try to
     // access
     // assignment
     // of a
     // deleted
     // course
   }
   returnmsg = as;
   rm = new Message(Message.Type.AssignmentResponse, returnmsg);
   network.sendMessage(rm, sessID);
   return rm;
 }
 public Message EditAssignmentGrade(Message m) {
   Message rm = null;
   int sessID = (int) m.msg[m.msg.length - 1];
   String userName = network.getUserName(sessID);
   Person grader = LoginManager.get(userName); // get id of person doing the adding
   int asid = (Integer) m.msg[0];
   String gradeUserName = (String) m.msg[3];
   double newgrade = Double.parseDouble((String) m.msg[1]);
   String newcomments = (String) m.msg[2];
   int cid = ((Course) m.msg[4]).getCID(); // cid of course
   Course c = LoginManager.getCourse(cid);
   Person beingGraded = LoginManager.get((gradeUserName));
   Assignment gradeassign = c.getAssignment(asid);
   HashMap<Integer, Person> TAs = c.getTAs();
   if (gradeassign == null) {
     rm = new Message(Message.Type.EditAssignmentGradeResponse, false);
   } else {
     gradeassign.setGrade(grader, beingGraded, newgrade, newcomments);
     rm = new Message(Message.Type.EditAssignmentGradeResponse, true);
   }
   enc = LoginManager.save(enc);
   network.sendMessage(rm, sessID);
   return rm;
 }