//Create a class public ActionResult Create() { //only allow classes to be created for current semester or later var cur = db.Semesters.Single(s => s.semester_id == db.Current_Semester.FirstOrDefault().semester_id); var viewModel = new ClassManagerCreateViewModel { Semesters = db.Semesters.Where(c=> c.start_date.CompareTo(cur.start_date) >= 0).ToList(), Classes = new Class(), Times = db.Timeslots.ToList(), Courses = db.Courses.ToList(), Depts = db.Departments.ToList(), Users = db.Users.Where(u => u.Role_Type.Any(r=>r.role_name == "Instructor")).OrderBy(u=> u.last_name).ToList() }; return View(viewModel); }
public ActionResult Create(Class newClass, FormCollection collection) { //error message for section id uniqueness ViewData["IDerror"] = ""; try { newClass.semster_id = collection["sem_list"]; newClass.course_id = collection["course_list"]; newClass.sect_id = int.Parse(collection["Classes.sect_id"]?? "0"); newClass.room_id = collection["Classes.room_id"]; newClass.inst_id = collection["inst_list"]; newClass.capacity = int.Parse(collection["Classes.capacity"]); newClass.waitlist_capacity = int.Parse(collection["Classes.waitlist_capacity"]); newClass.days = (collection["days_chk"] ?? "0").Split(',').Sum(x => Int32.Parse(x)); newClass.timeslot_id = int.Parse(collection["time_list"]); newClass.has_children = false; newClass.parent_class_id = null; if (db.Classes.Any(c => c.sect_id == newClass.sect_id && c.semster_id == newClass.semster_id && c.course_id == newClass.course_id)) { ViewData["IDerror"] = "Section IDs must be unique for each course ID and semester."; throw new Exception(); } //add new class to database and save changes db.AddToClasses(newClass); db.SaveChanges(); //return to Index return RedirectToAction("Index"); } catch (Exception ex) { var cur = db.Semesters.Single(s => s.semester_id == db.Current_Semester.FirstOrDefault().semester_id); var viewModel = new ClassManagerCreateViewModel { Semesters = db.Semesters.Where(c => c.start_date.CompareTo(cur.start_date) >= 0).ToList(), Classes = new Class(), Times = db.Timeslots.ToList(), Courses = db.Courses.ToList(), Depts = db.Departments.ToList(), Users = db.Users.Where(u => u.Role_Type.Any(r => r.role_name == "Instructor")).OrderBy(u => u.last_name).ToList() }; return View(viewModel); } }