public ActionResult BookDiscussionRoom(DiscussionRoomBooking model) { if (ModelState.IsValid) { //check duration against closing time //get xml XElement d = XElement.Load(serverpath.path); var close = d.Elements("closetime").First(); var dclose = Convert.ToDateTime(close.Value).TimeOfDay; var sesstime = Convert.ToDateTime(model.inTime).TimeOfDay; var length = Convert.ToDateTime(model.length).TimeOfDay; var sessend = sesstime.Add(length); if (sessend > dclose) { ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); TempData["Message"] = "Session proceeds past library closing time!"; TempData["classStyle"] = "warning"; //get xml var sp = Path.Combine(Server.MapPath("~"), "settings.xml"); XElement document = XElement.Load(sp); //get list of durations List <string> dur = (from el in document.Elements("discussionduration") select el.Value).ToList(); dur.Sort(); ViewBag.Durations = dur; return(RedirectToAction("BookDiscussionRoom")); } var dateToday = DateTime.Today; if (model.date.Date > dateToday.Date) { model.time = Convert.ToDateTime(model.inTime); //get the time and date components var time = model.time.TimeOfDay; var date = model.date.Date; //calculate the start time of the new session DateTime startDateTime = new DateTime(date.Year, date.Month, date.Day, time.Hours, time.Minutes, time.Seconds); //calculate the end time of the new session var duration = Convert.ToDateTime(model.length).TimeOfDay; DateTime endDateTime = startDateTime.Add(duration); model.date = startDateTime; model.endDate = endDateTime; //get the selected campus name and assign it to the model var campus_name = (from c in db.Campus where c.Campus_ID.Equals(model.campus_ID) select c.Campus_Name).FirstOrDefault(); model.campus_name = campus_name; model.person_id = User.Identity.Name; //capture the submitted booking details to a session variable Session["details"] = model; //get all available venues according to the submitted criteria var venues = db.findBookingVenuesFunc(startDateTime, endDateTime, "Discussion", model.campus_ID); Session["venues"] = venues.ToList(); //get all existing characteristics to provide venue filtering on the form, and save it to a session variable var characteristics = from c in db.Characteristics select c; Session["characteristicList"] = characteristics.ToList(); //load the GetDiscussionRoomVenues view return(RedirectToAction("GetDiscussionRoomVenues")); } else { ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); TempData["Message"] = "Invalid date selection, date is in the past."; TempData["classStyle"] = "warning"; //get xml var sp = Path.Combine(Server.MapPath("~"), "settings.xml"); XElement document = XElement.Load(sp); //get list of durations List <string> dur = (from el in document.Elements("discussionduration") select el.Value).ToList(); dur.Sort(); ViewBag.Durations = dur; return(View(model)); } } //get xml var settingsPath = Path.Combine(Server.MapPath("~"), "settings.xml"); XElement doc = XElement.Load(settingsPath); //get list of durations List <string> durations = (from el in doc.Elements("discussionduration") select el.Value).ToList(); durations.Sort(); ViewBag.Durations = durations; ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); return(View(model)); }
public ActionResult employeeBookDiscussionRoom(EmpDiscussionRoomBooking model) { if (ModelState.IsValid) { var dateToday = DateTime.Today; if (model.date > dateToday) { //get person object var validPersonId = db.Registered_Person.Where(p => p.Person_ID.Equals(model.person_id)); //check if the submitted person id is valid if (validPersonId.Any()) { model.time = Convert.ToDateTime(model.inTime); //get the time and date components var time = model.time.TimeOfDay; var date = model.date.Date; //calculate the start time of the new session DateTime startDateTime = new DateTime(date.Year, date.Month, date.Day, time.Hours, time.Minutes, time.Seconds); //calculate the end time of the new session var duration = Convert.ToDateTime(model.length).TimeOfDay; DateTime endDateTime = startDateTime.Add(duration); model.date = startDateTime; model.endDate = endDateTime; //get the selected campus name and assign it to the model var campus_name = (from c in db.Campus where c.Campus_ID.Equals(model.campus_ID) select c.Campus_Name).FirstOrDefault(); model.campus_name = campus_name; var discussionModel = new DiscussionRoomBooking { person_id = model.person_id, inTime = model.inTime, date = model.date, endDate = model.endDate, campus_ID = model.campus_ID, campus_name = model.campus_name, length = model.length, time = model.time, }; //capture the submitted booking details to a session variable Session["details"] = discussionModel; //get all available venues according to the submitted criteria var venues = db.findBookingVenuesFunc(startDateTime, endDateTime, "Discussion", model.campus_ID); Session["venues"] = venues.ToList(); //get all existing characteristics to provide venue filtering on the form, and save it to a session variable var characteristics = from c in db.Characteristics select c; Session["characteristicList"] = characteristics.ToList(); //load the GetDiscussionRoomVenues view return(RedirectToAction("GetDiscussionRoomVenues")); } else { ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); TempData["Message"] = "Invalid date selection, date is in the past."; TempData["classStyle"] = "warning"; //get xml var settingsPath = Path.Combine(Server.MapPath("~"), "settings.xml"); XElement doc = XElement.Load(settingsPath); //get list of durations List <string> durations = (from el in doc.Elements("discussionduration") select el.Value).ToList(); durations.Sort(); ViewBag.Durations = durations; return(View(model)); } } else { //get xml var settingsPath = Path.Combine(Server.MapPath("~"), "settings.xml"); XElement doc = XElement.Load(settingsPath); //get list of durations List <string> durations = (from el in doc.Elements("discussionduration") select el.Value).ToList(); durations.Sort(); ViewBag.Durations = durations; ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); TempData["Message"] = "Invalid Person ID"; TempData["classStyle"] = "warning"; return(View(model)); } } ViewBag.Campus_ID = new SelectList(db.Campus, "Campus_ID", "Campus_Name"); return(View(model)); }