Пример #1
0
 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);
 }
Пример #2
0
        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));
        }