private static IDictionary<int, Route> getRoutes()
        {
            Company company = new Company() { Name = "NZPost" };
            RouteNode origin = new DistributionCentre("Wellington");

            var routes = new Dictionary<int, Route>();

            // route1
            Route route1 = new Route{Company = company, TransportType = TransportType.Air, Origin = origin, Destination = new DistributionCentre("Auckland")};
            route1.AddDepartureTime(new WeeklyTime(DayOfWeek.Friday, 15, 0));
            route1.AddDepartureTime(new WeeklyTime(DayOfWeek.Wednesday, 5, 50));
            route1.ID = 1;
            routes[1] = route1;

            // route2
            Route route2 = new Route { Company = company, TransportType = TransportType.Land, Origin = origin, Destination = new DistributionCentre("Christchurch") };
            route2.AddDepartureTime(new WeeklyTime(DayOfWeek.Monday, 15, 0));
            route2.ID = 2;
            routes[2] = route2;

            return routes;
        }
        private Route getRoute()
        {
            Company company = new Company() {Name = "NZPost"};
            TransportType transportType = TransportType.Land;
            RouteNode origin = new DistributionCentre("Wellington");
            RouteNode destination = new DistributionCentre("Auckland");
            Route target = new Route{Company = company, TransportType = transportType, Origin = origin, Destination = destination};

            target.AddDepartureTime(new WeeklyTime(DayOfWeek.Friday, 15, 0));
            target.AddDepartureTime(new WeeklyTime(DayOfWeek.Wednesday, 5, 50));

            return target;
        }
        private Route getRoute2()
        {
            Company company = new Company() { Name = "NZPost" };
            TransportType transportType = TransportType.Sea;
            RouteNode origin = new DistributionCentre("Wellington");
            RouteNode destination = new DistributionCentre("Christchurch");
            Route target = new Route { Company = company, TransportType = transportType, Origin = origin, Destination = destination };

            target.AddDepartureTime(new WeeklyTime(DayOfWeek.Monday, 15, 0));

            return target;
        }
        /// <summary>
        /// This is where the initialisation of the routes collection happens.
        /// </summary>
        /// <returns></returns>
        private static IDictionary<int, Route> getRoutes(List<RouteNode> routeNodes)
        {
            Company company = new Company() { Name = "NZPost" };

            var routes = new Dictionary<int, Route>();

            Route airChchWell = new Route { Company = company, TransportType = TransportType.Air, Origin = routeNodes[0], Destination = routeNodes[1] };
            airChchWell.AddDepartureTime(new WeeklyTime(DayOfWeek.Monday, 12, 0));
            airChchWell.Duration = 60;
            airChchWell.CostPerCm3 = 0;
            airChchWell.CostPerGram = 2;
            airChchWell.ID = 0;
            routes[0] = airChchWell;

            Route landChchWell = new Route { Company = company, TransportType = TransportType.Land, Origin = routeNodes[0], Destination = routeNodes[1] };
            landChchWell.AddDepartureTime(new WeeklyTime(DayOfWeek.Tuesday, 12, 0));
            landChchWell.Duration = 60;
            landChchWell.CostPerCm3 = 0;
            landChchWell.CostPerGram = 1;
            landChchWell.ID = 1;
            routes[1] = landChchWell;

            Route airWellAuck = new Route { Company = company, TransportType = TransportType.Air, Origin = routeNodes[1], Destination = routeNodes[2] };
            airWellAuck.AddDepartureTime(new WeeklyTime(DayOfWeek.Thursday, 12, 0));
            airWellAuck.Duration = 60;
            airWellAuck.CostPerCm3 = 0;
            airWellAuck.CostPerGram = 3;
            airWellAuck.ID = 2;
            routes[2] = airWellAuck;

            Route landWellAuck = new Route { Company = company, TransportType = TransportType.Land, Origin = routeNodes[1], Destination = routeNodes[2] };
            landWellAuck.AddDepartureTime(new WeeklyTime(DayOfWeek.Wednesday, 12, 0));
            landWellAuck.Duration = 60;
            landWellAuck.CostPerCm3 = 0;
            landWellAuck.CostPerGram = 4;
            landWellAuck.ID = 3;
            routes[3] = landWellAuck;

            return routes;
        }