示例#1
0
        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));
        }
示例#2
0
        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));
        }