static void Main(string[] args) { //Generate new route with each run if route doesn't exist so debugging is consistent between users string RouteName = "TestRoute1"; //This is what we decide to call a specific route. It is a folder containing track.txt and route.txt if (!Directory.Exists(Environment.CurrentDirectory + "/" + RouteName)) { List <Location> destinationsToGenerateRoute = new List <Location>() { new Location("2021/03/08 15:30", "Göteborg"), new Location("2021/03/08 15:52", "Alingsås"), new Location("2021/03/08 16:23", "Vårgårda"), new Location("2021/03/08 17:42", "Herrljunga"), new Location("2021/03/08 18:50", "Falköping"), new Location("2021/03/08 19:30", "Stockholm") }; GenerateRoute(RouteName, destinationsToGenerateRoute); } var destinations = TrainSchedule.ParseRoute(RouteName); //Here we put the RouteName ITrackIO trackIO = new TrackIO(RouteName); //Here we put the RouteName Train[] trains = Train.Parse("trains.txt"); trackIO.Parse(); ITrainSimulation simulation = new TrainSimulation(175, trackIO).AddDestinations(destinations).AddTrain(trains[0]); simulation.Start(); //trains[0] because we only have one train at the moment. But trains.txt can and will contain multiple ones. }
public async Task <IActionResult> PutTrainSchedule([FromRoute] int id, [FromBody] TrainSchedule trainSchedule) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != trainSchedule.Id) { return(BadRequest()); } _context.Entry(trainSchedule).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TrainScheduleExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
//First you need to create a route that have a parse error in the route.txt file public void ParseDestinationsWithError() { Action actionResult = () => TrainSchedule.ParseRoute("TestRoute1", true); Exception exeptionResult = Assert.Throws <Exception>(actionResult); Assert.Equal("Something was wrong with the devider charecter", exeptionResult.Message); }
public async Task <IActionResult> Edit(int id, [Bind("Id,DepartureTime,Destination,DistanceKm")] TrainSchedule trainSchedule) { if (id != trainSchedule.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(trainSchedule); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TrainScheduleExists(trainSchedule.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(trainSchedule)); }
public ActionResult DeleteConfirmed(int id) { TrainSchedule trainSchedule = db.TrainSchedule.Find(id); db.TrainSchedule.Remove(trainSchedule); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "Id,TrainId,Stop,ArrivalTime")] TrainSchedule trainSchedule) { if (ModelState.IsValid) { db.Entry(trainSchedule).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(trainSchedule)); }
public ActionResult Create([Bind(Include = "Id,TrainId,Stop,ArrivalTime")] TrainSchedule trainSchedule) { if (ModelState.IsValid) { db.TrainSchedules.Add(trainSchedule); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(trainSchedule)); }
private Train GenerateSapsan758() { var train = new Train { Number = "758*Н", Name = "Сапсан" }; var trainSchedule = new TrainSchedule { FromDate = new DateTime(2019, 1, 7), ToDate = new DateTime(2019, 4, 6), Route = new Route { StartTime = new TimeSpan(5, 5, 0) }, Schedule = new DailySchedule(new DateTime(2019, 1, 7), 1) }; var trainRoute = new List <RoutePoint> { new RoutePoint { FromStartTime = new TimeSpan(), Station = ННовгород }, new RoutePoint { FromStartTime = new TimeSpan(0, 23, 0), Station = Дзержинск }, new RoutePoint { FromStartTime = new TimeSpan(1, 59, 0), Station = Владимир }, new RoutePoint { FromStartTime = new TimeSpan(4, 13, 0), Station = Москва }, new RoutePoint { FromStartTime = new TimeSpan(5, 25, 0), Station = Тверь }, new RoutePoint { FromStartTime = new TimeSpan(6, 40, 0), Station = Окуловка }, new RoutePoint { FromStartTime = new TimeSpan(7, 22, 0), Station = Чудово }, new RoutePoint { FromStartTime = new TimeSpan(8, 15, 0), Station = СПетербур } }; trainRoute.ForEach(e => trainSchedule.Route.Points.Add(e)); GenerateSapsanCars(trainRoute).ForEach(e => trainSchedule.TrainCars.Add(e)); train.TrainSchedules.Add(trainSchedule); return(train); }
public async Task <IActionResult> Create([Bind("Id,DepartureTime,Destination,DistanceKm")] TrainSchedule trainSchedule) { if (ModelState.IsValid) { _context.Add(trainSchedule); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(trainSchedule)); }
public ActionResult Edit([Bind(Include = "Id,Start_Station,Destination_Station,Arrival_Time,Departure_Time,Distance_Between,Train_Id")] TrainSchedule trainSchedule) { if (ModelState.IsValid) { db.Entry(trainSchedule).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.Train_Id = new SelectList(db.TrainDetail, "Id", "TrainName", trainSchedule.Train_Id); return(View(trainSchedule)); }
public async Task <IActionResult> PostTrainSchedule([FromBody] TrainSchedule trainSchedule) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.Schedules.Add(trainSchedule); await _context.SaveChangesAsync(); return(CreatedAtAction("GetTrainSchedule", new { id = trainSchedule.Id }, trainSchedule)); }
// GET: TrainSchedule/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TrainSchedule trainSchedule = db.TrainSchedule.Find(id); if (trainSchedule == null) { return(HttpNotFound()); } return(View(trainSchedule)); }
// GET: TrainSchedule/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TrainSchedule trainSchedule = db.TrainSchedule.Find(id); if (trainSchedule == null) { return(HttpNotFound()); } ViewBag.Train_Id = new SelectList(db.TrainDetail, "Id", "TrainName", trainSchedule.Train_Id); return(View(trainSchedule)); }
// Map StationDbContext object to Station object public Station MapStationDBToStation(StationDbContext StationDB) { using (var db = new DB()) { List <TrainSchedule> TrainSchedules = new List <TrainSchedule>(); foreach (var ts in StationDB.TrainSchedules) { var OneTrainScheduleStation = new Station { StationID = ts.StationID, StationName = ts.Station.StationName, }; var OneTrain = new Train { TrainID = ts.TrainID, }; var OneTrainSchedule = new TrainSchedule { StationID = ts.StationID, TrainID = ts.TrainID, Station = OneTrainScheduleStation, Train = OneTrain, TrainArrivalTime = ts.TrainArrivalTime }; TrainSchedules.Add(OneTrainSchedule); } var OneStation = new Station { StationID = StationDB.StationID, StationName = StationDB.StationName, TrainSchedules = TrainSchedules }; return(OneStation); } }
private Train GenerateNevskiy747() { var train = new Train { Number = "747А", Name = "Невский экспресс" }; var trainSchedule = new TrainSchedule { FromDate = new DateTime(2019, 1, 7), ToDate = new DateTime(2019, 4, 5), Route = new Route { StartTime = new TimeSpan(13, 10, 0) }, Schedule = new WeeklySchedule(new DateTime(2019, 1, 7), new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Sunday }) }; trainSchedule.Schedule.IncludedDates.Add(new DateTime(2019, 3, 9)); trainSchedule.Schedule.ExcludedDates.Add(new DateTime(2019, 3, 8)); var trainRoute = new List <RoutePoint> { new RoutePoint { FromStartTime = new TimeSpan(), Station = СПетербур }, new RoutePoint { FromStartTime = new TimeSpan(4, 5, 0), Station = Москва } }; trainRoute.ForEach(e => trainSchedule.Route.Points.Add(e)); GenerateNevskiyCars(trainRoute).ForEach(e => trainSchedule.TrainCars.Add(e)); train.TrainSchedules.Add(trainSchedule); return(train); }
public void isAuto(Boolean mode) { if (mode) { autoMode = true; label18.Text = "Fixed Block"; label18.ForeColor = System.Drawing.Color.Lime; trainSchedule = new TrainSchedule(); timeStart = trainSchedule.getStart(); timeEnd = trainSchedule.getEnd(); driverSchedule = new DriverSchedule(timeStart, timeEnd); MessageBox.Show("Please set up appropriate files and parameters then click okay."); dispatchTrain(); } else { autoMode = false; label18.Text = "Inactive"; label18.ForeColor = System.Drawing.Color.Red; } }
/// <summary> /// 作者:Kylin /// 时间:2015.01.05 /// 描述: check update training schedule for speaker is validate /// </summary> /// <param name="trainSchedule"></param> /// <param name="checkEnable"></param> /// <returns></returns> public static int CheckTrainingScheduleIsValidate(TrainSchedule trainSchedule, bool checkEnable) { using (var edb = new EmeEntities()) { if (!checkEnable) { if ( edb.UserSchedule.Any( p => p.BeginTime < trainSchedule.EndTime && p.EndTime > trainSchedule.BeginTime && p.Status == ConvertEnum.StatusTypeForActive && p.UserId == trainSchedule.SpeakerId)) { return 101; //已存在其他安排 } if ( edb.TrainSchedule.Any( p => p.BeginTime < trainSchedule.EndTime && p.EndTime > trainSchedule.BeginTime && p.SpeakerId == trainSchedule.SpeakerId && p.Status == ConvertEnum.StatusTypeForActive)) { return 103; //已存在其他培训 } if (edb.TrainRecord.Any(p => p.TrainSchedule.BeginTime < trainSchedule.EndTime && p.TrainSchedule.EndTime > trainSchedule.BeginTime && p.Status == ConvertEnum.StatusTypeForActive && p.UserId == trainSchedule.SpeakerId)) { return 104; //主讲人已预订其他培训 } } else { return 0; } } return -1; }
private Train GenerateMegapolis019() { var train = new Train { Number = "019У", Name = "Мегаполис" }; var trainSchedule = new TrainSchedule { FromDate = new DateTime(2019, 1, 1), ToDate = new DateTime(2019, 3, 28), Route = new Route { StartTime = new TimeSpan(22, 29, 0) }, Schedule = new DailySchedule(new DateTime(2019, 1, 1), 1) }; var trainRoute = new List <RoutePoint> { new RoutePoint { FromStartTime = new TimeSpan(), Station = СПетербур }, new RoutePoint { FromStartTime = new TimeSpan(5, 33, 0), Station = Тверь }, new RoutePoint { FromStartTime = new TimeSpan(7, 28, 0), Station = Москва } }; trainRoute.ForEach(e => trainSchedule.Route.Points.Add(e)); GenerateMegapolisCars(trainRoute).ForEach(e => trainSchedule.TrainCars.Add(e)); train.TrainSchedules.Add(trainSchedule); return(train); }
private Train GenerateNevskiy748() { var train = new Train { Number = "748А", Name = "Невский экспресс" }; var trainSchedule = new TrainSchedule { FromDate = new DateTime(2019, 1, 10), ToDate = new DateTime(2019, 4, 7), Route = new Route { StartTime = new TimeSpan(13, 40, 0) }, Schedule = new DailySchedule(new DateTime(2019, 1, 10), 1) }; trainSchedule.Schedule.ExcludedDates.Add(new DateTime(2019, 3, 9)); var trainRoute = new List <RoutePoint> { new RoutePoint { FromStartTime = new TimeSpan(), Station = Москва }, new RoutePoint { FromStartTime = new TimeSpan(4, 5, 0), Station = СПетербур } }; trainRoute.ForEach(e => trainSchedule.Route.Points.Add(e)); GenerateNevskiyCars(trainRoute).ForEach(e => trainSchedule.TrainCars.Add(e)); train.TrainSchedules.Add(trainSchedule); return(train); }
public override IEnumerable <object> Solve(TextReader inputStream) { var n = inputStream.ReadInt(); var schedules = new TrainSchedule[n - 1]; for (int i = 0; i < schedules.Length; i++) { var csf = inputStream.ReadIntArray(); schedules[i] = new TrainSchedule(csf[0], csf[1], csf[2]); } for (int startStation = 0; startStation < schedules.Length; startStation++) { var currentTime = 0; foreach (var schedule in schedules.Skip(startStation)) { currentTime = schedule.GetNextDepartureTime(currentTime) + schedule.Take; } yield return(currentTime); } yield return(0); }
/// <summary> /// 作者:Kylin /// 时间:2014.04.10 /// 描述:创建培训计划 (test ing ) /// </summary> /// <param name="trainSchedule"></param> /// <param name="trainBranchRights">分配的中心Ids</param> /// <param name="createBy"></param> /// <returns></returns> public static int CreateTrainSchedule(TrainSchedule trainSchedule, string[] trainBranchRights, int createBy) { using (var edb = new EmeEntities()) { using (var tran = new TransactionScope()) { try { //针对主讲人生成订课记录 var result = 100; //Default Create Result if (trainSchedule.SpeakerId.HasValue) { if ( edb.UserSchedule.Any( p => p.BeginTime < trainSchedule.EndTime && p.EndTime > trainSchedule.BeginTime && p.Status == ConvertEnum.StatusTypeForActive && p.UserId == trainSchedule.SpeakerId)) { result = 101; //已存在其他安排 return result; } if ( edb.TrainSchedule.Any( p => p.BeginTime < trainSchedule.EndTime && p.EndTime > trainSchedule.BeginTime && p.SpeakerId == trainSchedule.SpeakerId && p.Status == ConvertEnum.StatusTypeForActive)) { result = 103; //已存在其他培训 return result; } if (edb.TrainRecord.Any(p => p.TrainSchedule.BeginTime < trainSchedule.EndTime && p.TrainSchedule.EndTime > trainSchedule.BeginTime && p.Status == ConvertEnum.StatusTypeForActive && p.UserId == trainSchedule.SpeakerId)) { return 104; //主讲人已预订其他培训 } edb.Entry(trainSchedule).State = EntityState.Added; edb.SaveChanges(); if (trainBranchRights.Length > 0) { //Create Train Branch Rights foreach (var bId in trainBranchRights.Select(CommonHelper.To<int>)) { if (bId > 0) { edb.TrainRights.Add(new TrainRights() { BranchId = bId, TrainScheduleId = trainSchedule.Id, CreateBy = createBy, CreateTime = DateTime.Now }); } } } //当主讲人是老师时直接写入主讲人订课记录,提供老师端登入,并且视为主讲人进入会议平台 if ( edb.Teacher.Any( p => p.UserId == trainSchedule.SpeakerId && p.Status == ConvertEnum.StatusTypeForActive)) { if (trainSchedule.SpeakerId != null) { var model = new TrainRecord() { TrainScheduleId = trainSchedule.Id, UserId = trainSchedule.SpeakerId.Value, MeetingAttendType = ConvertEnum.MeetingAttendTypeForSpeaker, IsUnBook = false, Status = ConvertEnum.StatusTypeForActive, CreateBy = createBy, CreateTime = DateTime.Now }; edb.Entry(model).State = EntityState.Added; } } } //写入任务 if (trainSchedule.SpeakerId != null) { var userTaskModel = new UserTask() { IsSystem = true, IsComplete = false, Status = ConvertEnum.StatusTypeForActive, BeginTime = trainSchedule.BeginTime, EndTime = trainSchedule.EndTime, TaskValue = trainSchedule.Id, TaskNum = 1, TaskType = ConvertEnum.TaskTypeForTraining, CreateBy = createBy, CreateTime = DateTime.Now, UserId = trainSchedule.SpeakerId.Value }; edb.Entry(userTaskModel).State = EntityState.Added; } result = edb.SaveChanges() > 0 ? 100 : 102; //添加需要指定中心权限 tran.Complete(); return result; } catch (Exception e) { tran.Dispose(); // 异常日志消息队列 Common.MSMQ.QueueManager.AddExceptionLog(new ExceptionLogs() { ExceptionType = CommonHelper.To<int>(ExceptionType.Function), Message = string.Format("TrainBLL-CreateTrainSchedule:{0};{1};{2}", e.Message, e.InnerException.Message, e.HelpLink), IsTreat = false, CreateBy = createBy, CreateTime = DateTime.Now }); return 105; } } } }
public CreateTrainScheduleModel() { TrainSchedule = new TrainSchedule() { MaxBookNum = 1000, TrainNum = "1" }; }
/// <summary> /// 作者:Kylin /// 时间:2014.04.16 /// 描述:Update培训计划 /// </summary> /// <param name="model"></param> /// <returns></returns> public static bool UpdateTrainSchedule(TrainSchedule model) { using (var edb = new EmeEntities()) { try { var train = edb.TrainSchedule.FirstOrDefault(p => p.Id == model.Id); if (null == train) return false; train.V3TrainId = model.V3TrainId; train.Subject = model.Subject; train.TContent = model.TContent; train.Speaker = model.Speaker; train.SpeakerId = model.SpeakerId; train.TrainNum = model.TrainNum; train.BeginTime = model.BeginTime; train.EndTime = model.EndTime; train.IsBook = model.IsBook; train.IsRights = model.IsRights; train.MaxBookNum = model.MaxBookNum; train.CurrBookNum = model.CurrBookNum; train.MeetingPlatformType = model.MeetingPlatformType; train.MeetingId = model.MeetingId; train.MeetingRoom = model.MeetingRoom; train.Status = model.Status; train.UpdateBy = model.UpdateBy; train.UpdateTime = DateTime.Now; train.Remark = model.Remark; edb.Entry(train).State = EntityState.Modified; return edb.SaveChanges() > 0; } catch { return false; } } }
/// <summary> /// 作者:Kylin /// 时间:2014.04.10 /// 描述:创建培训计划 (test ing ) /// </summary> /// <param name="trainSchedule"></param> /// <param name="trainBranchRights">分配的中心Ids</param> /// <param name="editSpeaker"></param> /// <param name="updateBy"></param> /// <returns></returns> public static int UpdateTrainSchedule(TrainSchedule trainSchedule, string[] trainBranchRights, int editSpeaker, int updateBy) { using (var edb = new EmeEntities()) { using (var tran = new TransactionScope()) { try { //针对主讲人生成订课记录 if (trainSchedule.Id <= 0 || !edb.TrainSchedule.Any(p => p.Id == trainSchedule.Id && p.Status == ConvertEnum.StatusTypeForActive)) { return 106; // no schedule existed } //check online training is booked for any students if (edb.TrainSchedule.Any(p => p.Id == trainSchedule.Id && p.Status == ConvertEnum.StatusTypeForActive && p.MeetingPlatformType != trainSchedule.MeetingPlatformType && p.TrainRecord.Any(t => t.TrainScheduleId == p.Id && !t.IsUnBook && t.Status == ConvertEnum.StatusTypeForActive && t.UserId != p.SpeakerId))) { return 108; // exist anyone booked this shcedule and try to change online or offline setting } if (trainSchedule.SpeakerId.HasValue) { //Check is validate for speaker var isValidate = CheckTrainingScheduleIsValidate(trainSchedule, trainSchedule.SpeakerId == editSpeaker); if (isValidate > 0) { return isValidate; } //Delete history schedule speaker's schedule and tasks #region update schedule //update主讲人记录 var speakerRecords = edb.TrainRecord.Where(p => p.TrainScheduleId == trainSchedule.Id && p.Status == ConvertEnum.StatusTypeForActive && p.UserId == editSpeaker); if (speakerRecords.Any()) { foreach (var trainRecord in speakerRecords) { trainRecord.Status = ConvertEnum.StatusTypeForActive; trainRecord.UpdateBy = updateBy; trainRecord.UpdateTime = DateTime.Now; trainRecord.UserId = (int)trainSchedule.SpeakerId; edb.Entry(trainRecord).State = EntityState.Modified; } } else { //当主讲人是老师时直接写入主讲人订课记录,提供老师端登入,并且视为主讲人进入会议平台 if ( edb.Teacher.Any( p => p.UserId == trainSchedule.SpeakerId && p.Status == ConvertEnum.StatusTypeForActive)) { if (trainSchedule.SpeakerId != null) { var model = new TrainRecord() { TrainScheduleId = trainSchedule.Id, UserId = trainSchedule.SpeakerId.Value, MeetingAttendType = ConvertEnum.MeetingAttendTypeForSpeaker, IsUnBook = false, Status = ConvertEnum.StatusTypeForActive, CreateBy = updateBy, CreateTime = DateTime.Now }; edb.Entry(model).State = EntityState.Added; } } } var trainRights = edb.TrainRights.Where(p => p.TrainScheduleId == trainSchedule.Id); foreach (var right in trainRights) //删除历史中心权限 { edb.Entry(right).State = EntityState.Deleted; } var trainAttachment = trainSchedule.TrainAttachment; foreach (var attachment in trainAttachment) //删除历史附件 { attachment.UpdateBy = updateBy; attachment.UpdateTime = DateTime.Now; attachment.Status = ConvertEnum.StatusTypeForDelete; edb.Entry(attachment).State = EntityState.Modified; } //取消任务 var modelUserTaskList = edb.UserTask.Where(p => p.TaskType == ConvertEnum.TaskTypeForTraining && p.TaskValue == trainSchedule.Id && p.BeginTime == trainSchedule.BeginTime && p.EndTime == trainSchedule.EndTime).ToList(); foreach (var item in modelUserTaskList) { item.UpdateTime = DateTime.Now; item.UpdateBy = updateBy; item.Status = ConvertEnum.StatusTypeForDelete; edb.Entry(item).State = EntityState.Modified; } #endregion //update Schedule trainSchedule.UpdateBy = updateBy; trainSchedule.UpdateTime = DateTime.Now; edb.Entry(trainSchedule).State = EntityState.Modified; //Create BranchRights if (trainBranchRights.Length > 0) { //Create Train Branch Rights foreach (var bId in trainBranchRights.Select(CommonHelper.To<int>)) { if (bId > 0) { edb.TrainRights.Add(new TrainRights() { BranchId = bId, TrainScheduleId = trainSchedule.Id, CreateBy = updateBy, CreateTime = DateTime.Now }); } } } //写入任务 if (trainSchedule.SpeakerId != null) { var userTaskModel = new UserTask() { IsSystem = true, IsComplete = false, Status = ConvertEnum.StatusTypeForActive, BeginTime = trainSchedule.BeginTime, EndTime = trainSchedule.EndTime, TaskValue = trainSchedule.Id, TaskNum = 1, TaskType = ConvertEnum.TaskTypeForTraining, CreateBy = updateBy, CreateTime = DateTime.Now, UserId = trainSchedule.SpeakerId.Value }; edb.Entry(userTaskModel).State = EntityState.Added; } var result = edb.SaveChanges() > 0 ? 100 : 102; //添加需要指定中心权限 tran.Complete(); return result; } else { return 107;//speaker not exists } } catch (Exception e) { tran.Dispose(); // 异常日志消息队列 Common.MSMQ.QueueManager.AddExceptionLog(new ExceptionLogs() { ExceptionType = CommonHelper.To<int>(ExceptionType.Function), Message = string.Format("TrainBLL-UpdateTrainSchedule:{0};{1};{2}", e.Message, e.InnerException.Message, e.HelpLink), IsTreat = false, CreateBy = updateBy, CreateTime = DateTime.Now }); return 105; } } } }
//Let's not move this because this is just for user-debugging and has no connection to the API itself public static void GenerateRoute(string safeFileName, List <Location> destinations) { TrainSchedule.SaveRoute(destinations, safeFileName); TrackIO.ExportTrack("[A]------[B]----[C]---[D]---=--[E]---[F]", safeFileName); }
// Map a RouteDBContext object to Route object. public Route MapRouteDBToRoute(RouteDbContext RouteDB) { using (var db = new DB()) { List <Station> RouteStations = new List <Station>(); foreach (var s in RouteDB.RouteStations) { List <TrainSchedule> TrainSchedules = new List <TrainSchedule>(); foreach (var ts in s.TrainSchedules) { var OneStation = new Station { StationID = ts.StationID, StationName = ts.Station.StationName, }; var OneTrain = new Train { TrainID = ts.TrainID, }; var OneTrainSchedule = new TrainSchedule { StationID = ts.StationID, TrainID = ts.TrainID, Station = OneStation, Train = OneTrain, TrainArrivalTime = ts.TrainArrivalTime }; TrainSchedules.Add(OneTrainSchedule); } var OtherStation = new Station { StationName = s.StationName, TrainSchedules = TrainSchedules }; RouteStations.Add(OtherStation); } List <Train> RouteTrains = new List <Train>(); foreach (var t in RouteDB.RouteTrains) { var OneTrain = new Train { TrainID = t.TrainID }; RouteTrains.Add(OneTrain); } var OneRoute = new Route { RouteID = RouteDB.RouteID, RouteLength = RouteDB.RouteLength, RouteStations = RouteStations, RouteTrains = RouteTrains }; return(OneRoute); } }
private void createTrainSchedule() { trainSchedule = new TrainSchedule(); MessageBox.Show("Please set up appropriate files and parameters then click okay."); dispatchTrain(); }