public void UserScenario_1()
        {
            ParkingMap parkingMap = new ParkingMap(PopulateMap());

            // Space is 4 Normal and 2 Disabled Cars
            //
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new NormalCar(12300)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new DisabledCar(12301)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new NormalCar(12302)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new NormalCar(12303)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new DisabledCar(12304)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new NormalCar(12305)));

            // These will fail but they will be pushed to queue
            //
            Assert.AreEqual(-1, parkingMap.RequestParking(new DisabledCar(12306)));
            Assert.AreEqual(-1, parkingMap.RequestParking(new NormalCar(12307)));

            // Release 1 Normal and 1 Disabled
            //
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12300));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12301));

            // Release unknowns
            //
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12300));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12301));

            // Release all
            //
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12302));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12303));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12304));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12305));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12306));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12307));

            // Release unknowns
            //
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12302));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12303));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12304));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12305));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12306));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12307));


            // Request more
            //
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new DisabledCar(12310)));
            Assert.AreNotEqual(-1, parkingMap.RequestParking(new NormalCar(12311)));
            Assert.AreEqual(-1, parkingMap.RequestParking(new DisabledCar(12310)));
            Assert.AreEqual(-1, parkingMap.RequestParking(new NormalCar(12311)));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12310));
            Assert.IsTrue(parkingMap.ReleaseParkingByCarId(12311));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12310));
            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(12311));
        }
        /// <summary>
        /// Initialize the ParkingInstance.
        /// </summary>
        public static void initialize (IConfiguration configuration) {
            parkings = new ParkingMap ();

            string json = File.ReadAllText (configuration.GetSection("Paths").GetValue<string>("BicycleParkingsFile"));
            FeatureCollection raw = JsonConvert.DeserializeObject<FeatureCollection> (json);
            foreach (Feature f in raw.Features) {
                string type = f.Properties["type_nl"].ToString ();
                if (type == "Gegroepeerde bogen" || type == "Geïsoleerde boog") {
                    parkings.Add (f);
                }
            }
        }
        //*******CODE TO RUN WHEN THE CLEAR BUTTON IS TOUCHED*******
        partial void ClearButton_TouchUpInside(UIButton sender)
        {
            if (ParkingMap.Overlays != null)
            {
                ParkingMap.RemoveOverlays(ParkingMap.Overlays);
            }
            if (ParkingMap.Annotations != null)
            {
                ParkingMap.RemoveAnnotations(ParkingMap.Annotations);
            }
            ParkCarButton.Hidden = false;
            FindCarButton.Hidden = true;
            ClearButton.Hidden   = true;
            cTime.ResetTimer();

            ParkingMap.ShowsUserLocation = true;
        }
        //CODE FOR GETTING DIRECTIONS
        public void getDirections(CLLocationCoordinate2D source, CLLocationCoordinate2D destination)
        {
//			var gg = new CLLocationCoordinate2D(37.8197, -122.4786);
//			var sfo = new CLLocationCoordinate2D(37.6189, -122.3750);
            var ggAnnotation = new MKPointAnnotation()
            {
                Title = "Starting Point", Coordinate = source
            };
            var sfoAnnotation = new MKPointAnnotation()
            {
                Title = "My Car", Coordinate = destination
            };

            ParkingMap.ShowAnnotations(new MKPointAnnotation[] { ggAnnotation, sfoAnnotation }, false);

            var emptyDict = new NSDictionary();
            var req       = new MKDirectionsRequest()
            {
                Source        = new MKMapItem(new MKPlacemark(source, emptyDict)),
                Destination   = new MKMapItem(new MKPlacemark(destination, emptyDict)),
                TransportType = MKDirectionsTransportType.Automobile
            };

            var dir = new MKDirections(req);

            dir.CalculateDirections((response, error) => {
                if (error == null)
                {
                    var route   = response.Routes[0];
                    var rteLine = new MKPolylineRenderer(route.Polyline)
                    {
                        LineWidth   = 5.0f,
                        StrokeColor = UIColor.Purple
                    };

                    ParkingMap.OverlayRenderer = (mv, ol) => rteLine;
                    ParkingMap.AddOverlay(route.Polyline, MKOverlayLevel.AboveRoads);
                }
                else
                {
                    Console.WriteLine(error);
                }
            });
        }
        public void ReleaseParkingByCarIdTest()
        {
            ParkingMap parkingMap = new ParkingMap(PopulateMap());

            Assert.IsFalse(parkingMap.ReleaseParkingByCarId(999999));
        }