void UpdateCarriages() { float _REAL_CARRIAGE_LENGTH = TrainCarriage.CARRIAGE_LENGTH + TrainCarriage.CARRIAGE_SPACING; carriages[0].UpdateCarriage(currentPosition, parentLine.Get_PositionOnRail(currentPosition), parentLine.Get_RotationOnRail(currentPosition)); for (int i = 1; i < totalCarriages; i++) { TrainCarriage _current = carriages[i]; TrainCarriage _prev = carriages[i - 1]; Vector3 _prev_POS = _prev.transform.position; float carriageRailPosition = _prev.positionOnRail; Vector3 _current_POS = parentLine.Get_PositionOnRail(carriageRailPosition); float realDistanceFromPrevious = Vector3.Distance(_current_POS, _prev_POS); int attempts = 1000; for (int j = 0; j < attempts; j++) { if (realDistanceFromPrevious < (_REAL_CARRIAGE_LENGTH)) { carriageRailPosition -= 0.0001f; if (carriageRailPosition < 0) { carriageRailPosition += 1f; } _current_POS = parentLine.Get_PositionOnRail(carriageRailPosition); realDistanceFromPrevious = Vector3.Distance(_current_POS, _prev_POS); } else { break; } } _current.UpdateCarriage(carriageRailPosition, _current_POS, parentLine.Get_RotationOnRail(carriageRailPosition)); } }
public void Initialize() { TrainCarriageWithMediumCarnivore = new TrainCarriage(new Animal(Size.Medium, EatingBehaviour.Carnivore)); }
static void Main(string[] args) { InitEvent(); TrainTypeConfig KtrainTypeConfig = new TrainTypeConfig("K", "快车"); TrainTypeConfig ZtrainTypeConfig = new TrainTypeConfig("Z", "直达"); TrainTypeConfig TtrainTypeConfig = new TrainTypeConfig("T", "特快"); TrainTypeConfig DtrainTypeConfig = new TrainTypeConfig("D", "动车"); TrainTypeConfig GtrainTypeConfig = new TrainTypeConfig("G", "高铁"); TrainTypeConfig CtrainTypeConfig = new TrainTypeConfig("C", "城际"); //testDbContext.Add(KtrainTypeConfig); //testDbContext.Add(ZtrainTypeConfig); //testDbContext.Add(TtrainTypeConfig); //testDbContext.Add(DtrainTypeConfig); //testDbContext.Add(GtrainTypeConfig); //testDbContext.Add(CtrainTypeConfig); CarriageTypeConfig hardSeatCarriageTypeConfig = new CarriageTypeConfig("硬座", "硬座"); CarriageTypeConfig softSeatCarriageTypeConfig = new CarriageTypeConfig("软座", "软座"); CarriageTypeConfig oneSeatCarriageTypeConfig = new CarriageTypeConfig("一等座", "一等座"); CarriageTypeConfig twoSeatCarriageTypeConfig = new CarriageTypeConfig("二等座", "二等座"); CarriageTypeConfig businessSeatCarriageTypeConfig = new CarriageTypeConfig("商务座", "商务座"); CarriageTypeConfig hardSleepCarriageTypeConfig = new CarriageTypeConfig("硬卧", "硬卧"); CarriageTypeConfig softSleepCarriageTypeConfig = new CarriageTypeConfig("软卧", "软卧"); CarriageTypeConfig eatSleepCarriageTypeConfig = new CarriageTypeConfig("餐车", "餐车"); //testDbContext.Add(hardSeatCarriageTypeConfig); //testDbContext.Add(softSeatCarriageTypeConfig); //testDbContext.Add(oneSeatCarriageTypeConfig); //testDbContext.Add(twoSeatCarriageTypeConfig); //testDbContext.Add(businessSeatCarriageTypeConfig); //testDbContext.Add(hardSleepCarriageTypeConfig); //testDbContext.Add(softSleepCarriageTypeConfig); //testDbContext.Add(eatSleepCarriageTypeConfig); IList <SeatTypeConfig> seatTypeConfigs = new List <SeatTypeConfig>(); SeatTypeConfig oneSeatTypeConfig = new SeatTypeConfig("一等座", "一等座"); SeatTypeConfig twoSeatTypeConfig = new SeatTypeConfig("二等座", "二等座"); SeatTypeConfig businessSeatTypeConfig = new SeatTypeConfig("商务座", "商务座"); seatTypeConfigs.Add(oneSeatTypeConfig); seatTypeConfigs.Add(twoSeatTypeConfig); seatTypeConfigs.Add(businessSeatTypeConfig); //testDbContext.AddRange(seatTypeConfigs); IList <SeatTypeConfig> sleepSeatTypeConfigs = new List <SeatTypeConfig>(); SeatTypeConfig hardSleepSeatTypeConfig = new SeatTypeConfig("硬卧", "硬卧"); SeatTypeConfig softSleepSeatTypeConfig = new SeatTypeConfig("软卧", "软卧"); sleepSeatTypeConfigs.Add(hardSleepSeatTypeConfig); sleepSeatTypeConfigs.Add(softSleepSeatTypeConfig); //testDbContext.AddRange(sleepSeatTypeConfigs); LocationSeatTypeConfig toplocationSeatTypeConfig = new LocationSeatTypeConfig(hardSleepSeatTypeConfig, "Top", "上铺"); LocationSeatTypeConfig middlelocationSeatTypeConfig = new LocationSeatTypeConfig(hardSleepSeatTypeConfig, "Middle", "上铺"); LocationSeatTypeConfig downlocationSeatTypeConfig = new LocationSeatTypeConfig(hardSleepSeatTypeConfig, "Down", "上铺"); LocationSeatTypeConfig alocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "A", "A", true); LocationSeatTypeConfig blocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "B", "B"); LocationSeatTypeConfig clocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "C", "C"); LocationSeatTypeConfig dlocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "D", "D"); LocationSeatTypeConfig elocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "E", "E"); LocationSeatTypeConfig flocationSeatTypeConfig = new LocationSeatTypeConfig(oneSeatTypeConfig, "F", "F", true); //testDbContext.AddRange(toplocationSeatTypeConfig); //testDbContext.AddRange(middlelocationSeatTypeConfig); //testDbContext.AddRange(downlocationSeatTypeConfig); //testDbContext.AddRange(alocationSeatTypeConfig); //testDbContext.AddRange(blocationSeatTypeConfig); //testDbContext.AddRange(clocationSeatTypeConfig); //testDbContext.AddRange(dlocationSeatTypeConfig); //testDbContext.AddRange(elocationSeatTypeConfig); //testDbContext.AddRange(flocationSeatTypeConfig); IList <LocationSeatTypeConfig> locationSeatTypeConfigs = new List <LocationSeatTypeConfig>(); locationSeatTypeConfigs.Add(alocationSeatTypeConfig); locationSeatTypeConfigs.Add(flocationSeatTypeConfig); //初始化火车 Train train = new Train("000001"); IList <Train> trains = new List <Train>() { train }; //testDbContext.AddRange(trains); //初始化车厢 TrainCarriage trainCarriage1 = new TrainCarriage(train, 1, "商务车厢", businessSeatCarriageTypeConfig); TrainCarriage trainCarriage2 = new TrainCarriage(train, 2, "一等座车厢", oneSeatCarriageTypeConfig); TrainCarriage trainCarriage3 = new TrainCarriage(train, 3, "一等座车厢", oneSeatCarriageTypeConfig); TrainCarriage trainCarriage4 = new TrainCarriage(train, 4, "二等座车厢", twoSeatCarriageTypeConfig); TrainCarriage trainCarriage5 = new TrainCarriage(train, 5, "二等座车厢", twoSeatCarriageTypeConfig); TrainCarriage trainCarriage6 = new TrainCarriage(train, 6, "餐车", eatSleepCarriageTypeConfig); TrainCarriage trainCarriage7 = new TrainCarriage(train, 7, "硬座车厢", hardSleepCarriageTypeConfig); TrainCarriage trainCarriage8 = new TrainCarriage(train, 8, "软卧车厢", softSleepCarriageTypeConfig); IList <TrainCarriage> trainCarriages = new List <TrainCarriage>(); trainCarriages.Add(trainCarriage1); trainCarriages.Add(trainCarriage2); trainCarriages.Add(trainCarriage3); trainCarriages.Add(trainCarriage4); trainCarriages.Add(trainCarriage5); trainCarriages.Add(trainCarriage6); trainCarriages.Add(trainCarriage7); trainCarriages.Add(trainCarriage8); //testDbContext.AddRange(trainCarriages); //商务座座位 1排2个 IList <Seat> seatsbusiness = new List <Seat>(); for (int i = 1; i <= 8; i++) { foreach (var item in locationSeatTypeConfigs) { businessSeatTypeConfig.AddLocationSeatTypeConfig(item); Seat seat = new Seat(trainCarriage1, i, $"{i}{item.Code}", businessSeatTypeConfig); seatsbusiness.Add(seat); } } locationSeatTypeConfigs.Add(blocationSeatTypeConfig); locationSeatTypeConfigs.Add(elocationSeatTypeConfig); //一等座座位 1排4个 IList <Seat> seats1 = new List <Seat>(); for (int i = 1; i <= 12; i++) { foreach (var item in locationSeatTypeConfigs) { oneSeatTypeConfig.AddLocationSeatTypeConfig(item); Seat seat = new Seat(trainCarriage2, i, $"{i}{item.Code}", oneSeatTypeConfig); seats1.Add(seat); Seat seat1 = new Seat(trainCarriage3, i, $"{i}{item.Code}", oneSeatTypeConfig); seatsbusiness.Add(seat1); } } //二等座座位 1排5个 locationSeatTypeConfigs.Add(clocationSeatTypeConfig); IList <Seat> seats2 = new List <Seat>(); for (int i = 1; i <= 12; i++) { foreach (var item in locationSeatTypeConfigs) { twoSeatTypeConfig.AddLocationSeatTypeConfig(item); Seat seat = new Seat(trainCarriage4, i, $"{i}{item.Code}", twoSeatTypeConfig); seats2.Add(seat); Seat seat1 = new Seat(trainCarriage5, i, $"{i}{item.Code}", twoSeatTypeConfig); seats2.Add(seat); } } //软卧 IList <LocationSeatTypeConfig> sleeplocationSeatTypeConfigs = new List <LocationSeatTypeConfig>(); sleeplocationSeatTypeConfigs.Add(toplocationSeatTypeConfig); sleeplocationSeatTypeConfigs.Add(downlocationSeatTypeConfig); IList <Seat> seatSoftSleep = new List <Seat>(); for (int i = 1; i <= 10; i++) { foreach (var item in sleeplocationSeatTypeConfigs) { softSleepSeatTypeConfig.AddLocationSeatTypeConfig(item); Seat seat = new Seat(trainCarriage7, i, $"{i}{item.Code}", softSleepSeatTypeConfig); seatSoftSleep.Add(seat); } } //硬卧 sleeplocationSeatTypeConfigs.Add(middlelocationSeatTypeConfig); IList <Seat> seatHardSleep = new List <Seat>(); for (int i = 1; i <= 10; i++) { foreach (var item in sleeplocationSeatTypeConfigs) { hardSleepSeatTypeConfig.AddLocationSeatTypeConfig(item); Seat seat = new Seat(trainCarriage8, i, $"{i}{item.Code}", hardSleepSeatTypeConfig); seatHardSleep.Add(seat); } } IList <TrainStation> trainStations = new List <TrainStation>(); for (int i = 1; i <= 10; i++) { Station station = new Station(i.ToString(), $"站{i.ToString()}"); var trainStation = new TrainStation(station, i); trainStations.Add(trainStation); } IList <TrainTicketPrice> trainTicketPrices = new List <TrainTicketPrice>(); var currentTrainStation = trainStations.FirstOrDefault(); foreach (var item in trainStations.Skip(1)) { TrainTicketPrice trainTicketPrice = new TrainTicketPrice(currentTrainStation, item); TrainSeatPrice trainSeatPrice = new TrainSeatPrice(trainTicketPrice, oneSeatTypeConfig, 20); var trainSeatPrice1 = new TrainSeatPrice(trainTicketPrice, twoSeatTypeConfig, 10, true); var trainSeatPrice2 = new TrainSeatPrice(trainTicketPrice, businessSeatTypeConfig, 100); var trainSeatPrice3 = new TrainSeatPrice(trainTicketPrice, softSleepSeatTypeConfig, 80); var trainSeatPrice4 = new TrainSeatPrice(trainTicketPrice, hardSleepSeatTypeConfig, 40); trainTicketPrices.Add(trainTicketPrice); currentTrainStation = item; } TrainNumber trainNumber = new TrainNumber("G8888", "高铁8888次", GtrainTypeConfig, trainStations, trainTicketPrices, trains); DateTimeOffset date = new DateTime(2019, 1, 31); TrainShift trainShift = new TrainShift(trainNumber, train, date); //初始化客户信息 CustomerInfo customerInfo = new CustomerInfo("客户1", "18888888888", "[email protected]"); var userContract1 = new UserContract(customerInfo, "张三", "3604031324567835", ContractUserType.Children); var userContract2 = new UserContract(customerInfo, "李四", "3604564554545456"); var userContract11 = new UserContract(customerInfo, "刘六2", "3604564554545454"); var order1 = customerInfo.BookTrainTicket(trainShift, trainShift.TrainNumber.TrainStations[2], trainShift.TrainNumber.TrainStations[5], oneSeatTypeConfig, customerInfo, customerInfo.UserContracts); //初始化客户信息 CustomerInfo customerInfo1 = new CustomerInfo("客户2", "13655555555", "[email protected]"); var userContract3 = new UserContract(customerInfo1, "王五", "3604031324567833"); var userContract4 = new UserContract(customerInfo1, "刘六", "3604564554545454"); var order2 = customerInfo1.BookTrainTicket(trainShift, trainShift.TrainNumber.TrainStations[7], trainShift.TrainNumber.TrainStations[9], oneSeatTypeConfig, customerInfo1, customerInfo1.UserContracts); CustomerInfo customerInfo2 = new CustomerInfo("客户3", "15588885558", "[email protected]"); var userContract5 = new UserContract(customerInfo2, "徐梦", "3604031324567831"); var userContract6 = new UserContract(customerInfo2, "刘爽", "3604564554545452"); var order3 = customerInfo2.BookTrainTicket(trainShift, trainShift.TrainNumber.TrainStations[1], trainShift.TrainNumber.TrainStations[9], oneSeatTypeConfig, customerInfo2, customerInfo2.UserContracts); //ef 持久化数据库 ,TODO使用仓库持久化 TestDbContext testDbContext = new TestDbContext(); testDbContext.Add(order1.Item3); testDbContext.Add(order2.Item3); testDbContext.SaveChanges(); var adad = testDbContext.TrainOrders.ToList(); //testDbContext.Add(order1.Item3); //testDbContext.Add(order2.Item3); //testDbContext.Add(order3.Item3); //testDbContext.SaveChanges(); //var ss = testDbContext.CustomerInfos.FirstOrDefault(); Console.ReadLine(); }
public void Initialize() { TrainCarriageWithSmallCarnivore = new TrainCarriage(new Animal(Size.Small, EatingBehaviour.Carnivore)); }
public void TrainCarriage_Should_Contain_1_Animal_Up_On_Creation() { TrainCarriage trainCarriage = new TrainCarriage(new Animal(Size.Big, EatingBehaviour.Carnivore)); Assert.IsTrue(trainCarriage.Animals.Count.Equals(1)); }
public void Initialize() { TrainCarriageWithBigHerbivore = new TrainCarriage(new Animal(Size.Big, EatingBehaviour.Herbivore)); }