public int EditClass(Class newClass)
        {
            User newInstructor = context.Users.SingleOrDefault(u => u.userName == newClass.Instructor);

            if (newInstructor != null) //if the given Instructor is a real user
            {
                context.Entry(newClass).State = System.Data.EntityState.Modified;

                // get the id of the class that was just inserted.
                int classID = (from n in context.Classes
                               orderby n.ID descending
                               select n.ID).FirstOrDefault();

                int instructorID = newInstructor.id;
                // only add instructor if they aren't already the instructor.
                if (context.InstructorRosterEntries.SingleOrDefault(n => n.InstuctorID == instructorID && n.ClassID == classID) == null)
                    AddInstructor(classID, instructorID);

            }
            var result = context.SaveChanges();
            return result;
        }
        public Class AddClass(string username, int courseid, string instructor, int sizelimit, DateTime startDate, DateTime endDate, string title, string description, string location, string openRegistration)
        {
            var newClass = new Class
            {
                CourseID = courseid,
                Instructor = instructor,
                SizeLimit = sizelimit,
                StartDate = startDate,
                EndDate = endDate,
                CreatedBy = username,
                CreatedOn = DateTime.Now,
                Title = title,
                Description = description,
                location = location
            };

            newClass.CourseNumber = GetCourse(newClass.CourseID).CourseNumber;

            if (openRegistration.Equals("true,false"))
                newClass.OpenRegistration = true;

            if (title.Equals(""))
                newClass.Title = GetCourse(newClass.CourseID).Title;
            if (description.Equals(""))
                newClass.Description = GetCourse(newClass.CourseID).Description;
            if ((location.Equals("")) && (GetCourse(newClass.CourseID).SelfStudy == true))
                newClass.location = "virtual";

            User newInstructor = context.Users.SingleOrDefault(u => u.userName == instructor);

            if (newInstructor != null) //if the given Instructor is a real user
            {
                context.Classes.Add(newClass);
                context.SaveChanges();

                // get the id of the class that was just inserted.
                int classID = (from n in context.Classes
                               orderby n.ID descending
                               select n.ID).FirstOrDefault();

                int InstructorID = newInstructor.id;
                AddInstructor(classID, InstructorID);
            }
            return newClass; // will return null if the instructor's name was not found
        }
        public void DeleteClass(Class rClass)
        {
            foreach (var student in rClass.roster.ToList())
            {
                DropRoster(student);
            }

            foreach (var instructor in rClass.InstructorRosterEntries.ToList())
            {
                DropInstructorRoster(instructor);
            }

            foreach (var ClassHour in rClass.ClassHours.ToList())
            {
                DeleteClasshour(ClassHour);
            }

            foreach (var test in rClass.TestsInClasses.ToList())
            {
                context.TestsInClasses.Remove(test);
            }

            context.Classes.Remove(rClass);
        }
 //changes the value representing number of users enrolled in a class. For use when adding/dropping classes.
 public int AdjustCurrentEnrolled(int amount, Class thisClass)
 {
     thisClass.CurrentEnrolled = thisClass.CurrentEnrolled + amount;
     var result = context.SaveChanges();
     return result;
 }
        public ActionResult Edit(Class newClass)
        {
            var result = repository.EditClass(newClass);
            if (result > 0)
                TempData["message"] = string.Format("class with ID {0} has been saved.", newClass.ID);
            else
                TempData["message"] = string.Format("Unsuccessful procedure!");

            return RedirectToAction("ClassList/" + Session["CourseID"]);
        }
        private String getTest(Class Class)
        {
            String value;

             try
             {
              value = Class.TestsInClasses.First(i => i.ClassID >= 0).Test.Identifier.ToString();
             }
             catch
             {
                 value = "No Test";
             }
             return value;
        }
 private String getDropString(Class n)
 {
     String value;
      try{
          if (n.TestsInClasses.Count > 0)
          {
              value = "<a href=\"Test/DropTest/" + n.ID.ToString() + "\">Drop Test</a>";
          }
          else
          {
              value = "";
          }
      }catch{
          value = "";
      }
      return value;
 }