public ActionResult Edit(int classId, int problemSetId = 0)
 {
     try
     {
         if ((int) Session["ClassId"] != classId || (UserType) Session["UserType"] != UserType.Instructor)
         {
             return RedirectToAction("Unauthorized", "Error");
         }
         ProblemSetViewModel model = new ProblemSetViewModel();
         if (problemSetId == 0) //Create a new set
         {
             model.Set = new ProblemSetData();
             model.Set.Class = new ClassData((int) Session["ClassId"]);
         }
         else if (problemSetId == -1) //View the unassigned set
         {
             ProblemSetData unassigned = new ProblemSetData(-1);
             unassigned.Name = "Unassigned Problems";
             unassigned.Class = new ClassData((int) Session["ClassId"]);
             model.Set = unassigned;
             model.Problems = GlobalStaticVars.StaticCore.GetProblemsForSet(model.Set);
         }
         else //Edit a set normally
         {
             model.Set = GlobalStaticVars.StaticCore.GetSetById(problemSetId);
             model.Prereqs = GlobalStaticVars.StaticCore.GetSetPrereqs(problemSetId);
             model.Problems = GlobalStaticVars.StaticCore.GetProblemsForSet(model.Set);
         }
         return View(model);
     }
     catch (Exception e)
     {
         return RedirectToAction("ServerError", "Error");
     }
 }
        public ActionResult Edit(ProblemSetViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.Set.Id == 0)
                        model.Set.Id = GlobalStaticVars.StaticCore.AddSet(model.Set);
                    else
                        GlobalStaticVars.StaticCore.ModifySet(model.Set);
                    GlobalStaticVars.StaticCore.UpdateSetPrereqs(model.Set.Id, model.Prereqs);

                    //This is necessary in case bad prereqs (ex. duplicates) are removed by the backend
                    model.Prereqs = GlobalStaticVars.StaticCore.GetSetPrereqs(model.Set.Id);
                }
                ModelState.Clear();
                return View(model);
            }
            catch (Exception e)
            {
                return RedirectToAction("ServerError", "Error");
            }
        }