コード例 #1
0
        static void Main(string[] args)
        {
            Clock clock1 = new Clock();

            TrackOrm         trackOrm   = new TrackOrm();
            string           track1Path = "Data/traintrack1.txt";
            string           track2Path = "Data/traintrack2.txt";
            TrackDescription track1     = trackOrm.LoadTrack(track1Path);
            TrackDescription track2     = trackOrm.LoadTrack(track2Path);

            ITravelPlan travelPlan =
                new TravelPlanner()
                .AddTrack(track2)
                .SelectTrain(2)
                .StartAt(1, "10:00")
                .ArriveAt(2, "10:56")
                .StartAt(2, "12:17")
                .ArriveAt(3, "13:20")
                //.SelectTrain(3)
                //.StartAt(1, "12:30")
                //.ArriveAt(2, "14:46")
                .GeneratePlan();

            travelPlan.Save();

            //  test to see if the trains would crash:
            // ITravelPlan travelPlanShouldCrash =
            // new TravelPlanner()
            // .AddTrack(track2)
            // .SelectTrain(2).StartAt(1, "10:00").ArriveAt(2, "12:12").SelectTrain(3).StartAt(2, "11:30").ArriveAt(1, "17:00").GeneratePlan();
        }
コード例 #2
0
        private TravelPlanner GetTravelPlanner(DataCollection <Entity> rooms)
        {
            var travelPlanner = new TravelPlanner();

            travelPlanner.TravelPlannerId       = _opportunity.Id;
            travelPlanner.ConsultationReference = _opportunity.GetAttributeValue <string>(Opportunity.Name);
            travelPlanner.DepartureDateFrom     = _opportunity.Contains(Opportunity.EarliestDepartureDate)
                ? GetOwrDateFormat(_opportunity.GetAttributeValue <DateTime>(Opportunity.EarliestDepartureDate))
                : null;
            travelPlanner.DepartureDateTo = _opportunity.Contains(Opportunity.LatestDepartureDate)
                ? GetOwrDateFormat(_opportunity.GetAttributeValue <DateTime>(Opportunity.LatestDepartureDate))
                : null;
            var duration = _opportunity.GetAttributeValue <OptionSetValue>(Opportunity.Duration)?.Value;

            if (duration != null)
            {
                travelPlanner.NumberOfNights = (NumberOfNights)duration;
            }

            travelPlanner.IncludedDestinations = GetIncludedDestinations();
            travelPlanner.ExcludedDestinations = GetExcludedDestinations();

            travelPlanner.DeparturePoints = new[]
            {
                _opportunity.GetAttributeValue <EntityReference>(Opportunity.DeparturePoint1)?.Name,
                _opportunity.GetAttributeValue <EntityReference>(Opportunity.DeparturePoint2)?.Name,
                _opportunity.GetAttributeValue <EntityReference>(Opportunity.DeparturePoint3)?.Name
            };
            travelPlanner.Rooms    = GetRoomsByEntity(rooms);
            travelPlanner.Customer = GetCustomer();
            return(travelPlanner);
        }
コード例 #3
0
        public void ArriveAt_InvalidTimeFormat_Expect_Exception_Message()
        {
            TravelPlanner travelPlanner8 = new TravelPlanner();
            Action        action3        = () => travelPlanner8.ArriveAt(2, "jj");
            Exception     exception      = Assert.Throws <Exception>(action3);

            Assert.Equal("Invalid time format", exception.Message);
        }
コード例 #4
0
        public void ArriveAt_StationNotInList_Expect_Exception_Message()
        {
            TravelPlanner travelPlanner = new TravelPlanner();
            Action        action        = () => travelPlanner.StartAt(8, "9");
            Exception     exception     = Assert.Throws <Exception>(action);

            Assert.Equal("Can´t find this station, please choose another station", exception.Message);
        }
コード例 #5
0
        public void StartAt_InvalidTimeFormat_Expect_Exception_Message()
        {
            TravelPlanner travelPlanner7 = new TravelPlanner();
            Action        action2        = () => travelPlanner7.StartAt(2, "hh");
            Exception     exception4     = Assert.Throws <Exception>(action2);

            Assert.Equal("Invalid time format", exception4.Message);
        }
コード例 #6
0
        public void SelectTrain_NotOperatedTrain_Expect_Exception_Message()
        {
            TravelPlanner travelPlanner = new TravelPlanner();
            Action        action        = () => travelPlanner.SelectTrain(1);
            Exception     exception2    = Assert.Throws <Exception>(action);

            Assert.Equal("This train is not running", exception2.Message);
        }
コード例 #7
0
        public void SelectTrain_TrainNotInList_Expect_Exception_Message()
        {
            TravelPlanner travelPlanner = new TravelPlanner();
            Action        action        = () => travelPlanner.SelectTrain(7);
            Exception     exception     = Assert.Throws <Exception>(action);

            Assert.Equal("Can´t find this train, please choose another train", exception.Message);
        }
コード例 #8
0
        public async Task <IActionResult> GetTravelPlan([FromQuery] string from, [FromQuery] string to, [FromQuery] string start)
        {
            var           schedule = GetSchedule().Result;
            TravelPlanner tp       = new TravelPlanner(schedule);
            var           route    = tp.FindConnection(from, to, start);

            if (route != null)
            {
                return(Ok(route));
            }
            else
            {
                return(NotFound());
            }
        }
コード例 #9
0
 public void SetUp()
 {
     unsortedList = new List <TravelCard>();
     _planner     = new TravelPlanner(unsortedList);
 }