private Request processRequest(Request request)
        {
            List <RequestWeek> weeks = new List <RequestWeek>();

            if (request.Weeks != null && request.Weeks.Count > 0)
            {
                foreach (var week in request.Weeks)
                {
                    RequestWeek rw = new RequestWeek(Convert.ToInt16(week));
                    weeks.Add(rw);
                }
            }
            else
            {
                ModelState.AddModelError("NoWeeks", "Request cannot be for no weeks");
            }
            request.RequestWeeks = weeks;
            request.Department   = User.Identity.Name;

            List <RequestRoom>  rooms  = new List <RequestRoom>();
            List <AcceptedRoom> rooms2 = new List <AcceptedRoom>();

            if (request.Rooms != null && request.Rooms.Count > 0)
            {
                foreach (string room in request.Rooms)
                {
                    RequestRoom  rr = new RequestRoom(Convert.ToInt16(room));
                    AcceptedRoom ar = new AcceptedRoom(Convert.ToInt16(room));
                    rooms.Add(rr);
                    rooms2.Add(ar);
                }
            }
            else
            {
                RequestRoom rr = new RequestRoom();
                rooms.Add(rr);
            }
            request.RequestRooms = rooms;

            if (request.AdHoc)
            {
                request.Round         = 0;
                request.Status        = "Accepted";
                request.AcceptedRoom  = (int)rooms[0].RoomID;
                request.AcceptedRooms = rooms2;
            }
            else
            {
                request.Round  = 2;
                request.Status = "Pending";
            }

            return(request);
        }
Пример #2
0
        public ActionResult Index(AddRequestModel model, HttpPostedFileBase LogoFile)
        {
            string department = User.Identity.Name;
            IEnumerable <SelectListItem> selectList = from s in db.Modules
                                                      where s.DepartmentCode == department
                                                      select new SelectListItem
            {
                Text  = s.ModuleCode + " - " + s.Title,
                Value = s.ModuleCode
            };


            ViewBag.modules = new SelectList(selectList, "Value", "Text");

            IEnumerable <SelectListItem> selectActiveRoundList = from r in db.Rounds
                                                                 join s in db.Semesters on r.SemesterID equals s.SemesterID
                                                                 where r.EndDate == null
                                                                 select new SelectListItem
            {
                Text = (s.StartYear).ToString() + " - " + (s.StartYear + 1).ToString() +
                       " Semester " + (s.SemesterNo).ToString(),

                Value = (r.RoundID).ToString()
            };

            ViewBag.activeSemesters = new SelectList(selectActiveRoundList, "Value", "Text");

            IEnumerable <SelectListItem> daysList = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "Monday", Value = "1"
                },
                new SelectListItem()
                {
                    Text = "Tuesday", Value = "2"
                },
                new SelectListItem()
                {
                    Text = "Wednesday", Value = "3"
                },
                new SelectListItem()
                {
                    Text = "Thursday", Value = "4"
                },
                new SelectListItem()
                {
                    Text = "Friday", Value = "5"
                },
            };

            ViewBag.days = new SelectList(daysList, "Value", "Text");

            IEnumerable <SelectListItem> Periods = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "Period 1 - 9:00", Value = "1"
                },
                new SelectListItem()
                {
                    Text = "Period 2 - 10:00", Value = "2"
                },
                new SelectListItem()
                {
                    Text = "Period 3 - 11:00", Value = "3"
                },
                new SelectListItem()
                {
                    Text = "Period 4 - 12:00", Value = "4"
                },
                new SelectListItem()
                {
                    Text = "Period 5 - 13:00", Value = "5"
                },
                new SelectListItem()
                {
                    Text = "Period 6 - 14:00", Value = "6"
                },
                new SelectListItem()
                {
                    Text = "Period 7 - 15:00", Value = "7"
                },
                new SelectListItem()
                {
                    Text = "Period 8 - 16:00", Value = "8"
                },
                new SelectListItem()
                {
                    Text = "Period 9 - 17:00", Value = "9"
                }
            };

            ViewBag.periods = new SelectList(Periods, "Value", "Text");

            IEnumerable <SelectListItem> roomsList = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "1", Value = "1"
                },
                new SelectListItem()
                {
                    Text = "2", Value = "2"
                },
                new SelectListItem()
                {
                    Text = "3", Value = "3"
                },
                new SelectListItem()
                {
                    Text = "4", Value = "4"
                },
                new SelectListItem()
                {
                    Text = "5", Value = "5"
                },
            };

            ViewBag.noOfRooms = new SelectList(roomsList, "Value", "Text");

            IEnumerable <SelectListItem> parkCodesList = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "W - West", Value = "W"
                },
                new SelectListItem()
                {
                    Text = "C - Central", Value = "C"
                },
                new SelectListItem()
                {
                    Text = "E - East", Value = "E"
                },
            };

            ViewBag.parkCodes = new SelectList(parkCodesList, "Value", "Text");
            ViewBag.noOfFacs  = (from f in db.Facilities select f.FacilityID).Count();
            model.facilities  = (from f in db.Facilities select f).ToList();


            if (ModelState.IsValid)
            {
                if (model.requestsIndex != null)
                {
                    {
                        int     prefrooms = Convert.ToInt32(Request["roomSelect"]);
                        Request requests  = new Request();

                        model.requestsIndex.RoundID      = Convert.ToInt32(Request["roundSelect"]);
                        model.requestsIndex.ModuleCode   = Request["moduleSelect"];
                        model.requestsIndex.Day          = Convert.ToByte(Request["daySelect"]);
                        model.requestsIndex.Period       = Convert.ToByte(Request["periodSelect"]);
                        model.requestsIndex.Length       = Convert.ToByte(Request["lengthData"]);
                        model.requestsIndex.NoOfRooms    = Convert.ToByte(Request["roomSelect"]);
                        model.requestsIndex.NoOfStudents = Convert.ToInt32(Request["noOfStudents"]);
                        model.requestsIndex.RoomType     = Request["roomType"];
                        model.requestsIndex.SeatingType  = Request["seatingType"];
                        model.requestsIndex.ParkCode     = Request["parkSelect"];

                        model.requestsIndex.Status = "P";
                        if (Request["priorityCheck"] == "1")
                        {
                            model.requestsIndex.Priority = 1;
                        }
                        else
                        {
                            model.requestsIndex.Priority = 0;
                        }
                        requests = model.requestsIndex;

                        db.Entry(requests).State = EntityState.Added;
                        db.SaveChanges();



                        for (int i = 1; i < 16; i++)
                        {
                            if (Request["week-" + i] == "1")
                            {
                                RequestWeek requestweeks = new RequestWeek();
                                requestweeks.RequestID       = requests.RequestID;
                                requestweeks.Week            = i;
                                db.Entry(requestweeks).State = EntityState.Added;
                                db.SaveChanges();
                            }
                        }

                        for (int i = 1; i <= prefrooms; i++)
                        {
                            PreferenceRoom preferenceRooms = new PreferenceRoom();
                            preferenceRooms.RequestID       = requests.RequestID;
                            preferenceRooms.RoomID          = Convert.ToInt32(Request["roomPref-" + i]);
                            db.Entry(preferenceRooms).State = EntityState.Added;
                            db.SaveChanges();
                        }

                        for (int i = 1; i <= ViewBag.noOfFacs; i++)
                        {
                            RequiredFacility requiredFacilities = new RequiredFacility();
                            requiredFacilities.RequestID = requests.RequestID;

                            string fac = Request["fac-" + i];

                            if (fac == "1")
                            {
                                requiredFacilities.FacilityID      = i;
                                db.Entry(requiredFacilities).State = EntityState.Added;
                                db.SaveChanges();
                            }
                        }


                        return(RedirectToAction("Index", "ViewRequest"));
                    }
                }
            }

            return(View("Index"));
        }