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); }
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")); }