public Tables(Database db) { Blocks = new Blocks(db); Config = new Config(db); ElimsCommitHistory = new ElimsCommitHistory(db); ElimsData = new ElimsData(db); ElimsGameSpecific = new ElimsGameSpecific(db); ElimsGameSpecificHistory = new ElimsGameSpecificHistory(db); ElimsResults = new ElimsResults(db); ElimsScores = new ElimsScores(db); ElimsScoresHistory = new ElimsScoresHistory(db); LeagueConfig = new LeagueConfig(db); LeagueHistory = new LeagueHistory(db); LeagueInfo = new LeagueInfo(db); LeagueMeets = new LeagueMeets(db); Match = new Match(db); MatchSchedule = new MatchSchedule(db); Quals = new Quals(db); QualsCommitHistory = new QualsCommitHistory(db); QualsData = new QualsData(db); QualsGameSpecific = new QualsGameSpecific(db); QualsGameSpecificHistory = new QualsGameSpecificHistory(db); QualsResults = new QualsResults(db); QualsScores = new QualsScores(db); QualsScoresHistory = new QualsScoresHistory(db); ScheduleDetail = new ScheduleDetail(db); ScheduleStation = new ScheduleStation(db); Team = new Team(db); TeamRanking = new TeamRanking(db); }
public ActionResult Create([Bind(Include = "Id,Name,DurationInMinutes,TrainTypeId,TimeOfDay,IsActive")] Schedule schedule, List <ScheduleTravelClass> scheduleTravelClasses, int[] daysOfWeek, int[] stations) { if (ModelState.IsValid) { //Check seat count TrainType trainType = db.TrainTypes.Find(schedule.TrainTypeId); int scheduleSeatCount = scheduleTravelClasses.Sum(x => x.NumberOfSeats); foreach (var scheduleTravelClass in scheduleTravelClasses) { TrainTypeTravelClass trainTypeTravelClass = trainType.TrainTypeTravelClasses.Where(x => x.TravelClassId == scheduleTravelClass.TravelClassId).Single(); if (scheduleTravelClass.NumberOfSeats > trainTypeTravelClass.NumberOfSeats) { ModelState.AddModelError("", "The number of seats specified exceeds the specified maximum capacity"); ViewBag.TrainTypeId = new SelectList(db.TrainTypes, "Id", "Name"); var daysOfWeekList = GetSelectListModel(db.DayOfTheWeeks.ToList()); ViewBag.DaysOfWeek = daysOfWeekList; var stationsList = new SelectList(db.Stations.ToList(), "Id", "Name"); ViewBag.Stations = stationsList; return(View(schedule)); } } db.Schedules.Add(schedule); db.SaveChanges(); //Create ScheduleTravelClasses if (scheduleTravelClasses != null && scheduleTravelClasses.Any()) { foreach (var item in scheduleTravelClasses) { item.ScheduleId = schedule.Id; } db.ScheduleTravelClasses.AddRange(scheduleTravelClasses); } //Create ScheduleDaysOfTheWeek if (daysOfWeek.Any()) { List <ScheduleDayOfTheWeek> scheduleDayOfTheWeek = new List <ScheduleDayOfTheWeek>(); foreach (var item in daysOfWeek) { scheduleDayOfTheWeek.Add(new ScheduleDayOfTheWeek() { DayOfTheWeekId = item, ScheduleId = schedule.Id, IsActive = true }); } db.ScheduleDayOfTheWeeks.AddRange(scheduleDayOfTheWeek); } //Create ScheduleStations ScheduleStation fromSheduleStation = new ScheduleStation() { ScheduleId = schedule.Id, StationId = stations[0], Location = Convert.ToInt32(Location.From) }; ScheduleStation toScheduleStation = new ScheduleStation() { ScheduleId = schedule.Id, StationId = stations[1], Location = Convert.ToInt32(Location.To) }; db.ScheduleStations.Add(fromSheduleStation); db.ScheduleStations.Add(toScheduleStation); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.TrainTypeId = new SelectList(db.TrainTypes.Where(x => x.IsActive), "Id", "Name", schedule.TrainTypeId); var daysOfTheWeek = GetSelectListModel(db.DayOfTheWeeks.ToList()); ViewBag.DaysOfWeek = daysOfWeek; var stationList = new SelectList(db.Stations.Where(x => x.IsActive && x.City.IsActive).ToList(), "Id", "Name"); ViewBag.Stations = stationList; return(View(schedule)); }