Example #1
0
 ///////////////// PARK VEHICLES /////////////////
 ////////////////      CARS      ////////////////
 public static void ParkCar()
 {
     if (ParkingSpaces.parkingSpots.Count == 0)
     {
         ParkingSpaces.parkingSpots = CreateSpaces();
     }
     foreach (ParkingList availableCarSpace in ParkingSpaces.parkingSpots)
     {
         if (availableCarSpace.availableSpace == 4)
         {
             AnsiConsole.Render(
                 new Panel(new Text($"Please enter license number: ").Centered())
                 .Expand()
                 .SquareBorder()
                 .Header("[red]Park A Car[/]")
                 .HeaderAlignment(Justify.Center));
             string userInput = Console.ReadLine().ToUpper();
             Car    car       = new Car(userInput);
             availableCarSpace.parkingList.Add(car);
             AnsiConsole.Render(
                 new Panel(new Text($"{car.VehicleType} with license plate {userInput}\nParked at time: {car.TimeStamp}\nSpace left: Parking spot is now full.").Centered())
                 .Expand()
                 .SquareBorder()
                 .Header("[green]Park A Car[/]")
                 .HeaderAlignment(Justify.Center));
             availableCarSpace.availableSpace = 0;
             ReadData.SerializeObject();
             Console.ReadKey();
             break;
         }
     }
 }
Example #2
0
        ///////////////// PARK VEHICLES /////////////////
        ////////////////      MC        ////////////////
        public static void ParkMC()
        {
            if (ParkingSpaces.parkingSpots.Count == 0)
            {
                ParkingSpaces.parkingSpots = Car.CreateSpaces();
            }

            foreach (ParkingList extraMc in ParkingSpaces.parkingSpots)
            {
                if (extraMc.availableSpace == 4)
                {
                    AnsiConsole.Render(
                        new Panel(new Text($"\nPlease enter license number: \n").Centered())
                        .Expand()
                        .SquareBorder()
                        .Header("[red]Park An MC[/]")
                        .HeaderAlignment(Justify.Center));
                    string userInput = Console.ReadLine().ToUpper();
                    Mc     mc        = new Mc(userInput, TimeCheckin());
                    extraMc.parkingList.Add(mc);
                    AnsiConsole.Render(
                        new Panel(new Text($"{mc.VehicleType} with license plate {userInput}\nParked at time: {mc.TimeStamp}\nSpace left: Room for 1 more Mc.").Centered())
                        .Expand()
                        .SquareBorder()
                        .Header("[green]Park An Mc[/]")
                        .HeaderAlignment(Justify.Center));
                    extraMc.availableSpace = extraMc.availableSpace -= 2;
                    ReadData.SerializeObject();
                    Console.ReadKey();
                    break;
                }
                if (extraMc.availableSpace == 2)
                {
                    AnsiConsole.Render(
                        new Panel(new Text($"\nPlease enter license number: \n").Centered())
                        .Expand()
                        .SquareBorder()
                        .Header("[red]Park An MC[/]")
                        .HeaderAlignment(Justify.Center));
                    string userInput = Console.ReadLine().ToUpper();
                    Mc     mc        = new Mc(userInput, Vehicle.TimeCheckin());
                    extraMc.parkingList.Add(mc);
                    AnsiConsole.Render(
                        new Panel(new Text($"{mc.VehicleType} with license plate {userInput}\nParked at time: {mc.TimeStamp}\nSpace left: Parking space is now full.").Centered())
                        .Expand()
                        .SquareBorder()
                        .Header("[green]Park An MC[/]")
                        .HeaderAlignment(Justify.Center));
                    extraMc.availableSpace = extraMc.availableSpace -= 2;
                    ReadData.SerializeObject();
                    Console.ReadKey();
                    break;
                }
            }
        }
        ////////////// CHECK OUT VEHICLES ///////////////
        public static void RemoveVehicle()
        {
            AnsiConsole.Render(
                new Panel(new Text($"\nTo check out vehicle please enter License number: \n").Centered())
                .Expand()
                .SquareBorder()
                .Header("[red]Check Out Menu[/]")
                .HeaderAlignment(Justify.Center));
            TimeStampOut  = TimeCheckin();
            LicenseChoice = Console.ReadLine().ToUpper();
            List <ParkingList> spaces = ParkingSpaces.parkingSpots;

            foreach (ParkingList parkingSpot in spaces)
            {
                foreach (Vehicle vehicle in parkingSpot.parkingList)
                {
                    if (LicenseChoice.Equals(vehicle.LicensePlate) && vehicle.CarSize == 4)
                    {
                        i            = ParkingSpaces.parkingSpots.IndexOf(parkingSpot);
                        TimeStampOut = Vehicle.TimeCheckin();
                        AnsiConsole.Render(
                            new Panel(new Text($"Car was found at spot: {i + 1}\nCheck in time:{vehicle.TimeStamp}\nCheck out time: {TimeStampOut}").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[green]Check Out Menu[/]")
                            .HeaderAlignment(Justify.Center));
                        Console.ReadKey();
                        parkingSpot.parkingList.RemoveAt(0);
                        parkingSpot.availableSpace = 4;
                        ReadData.SerializeObject();
                        break;
                    }
                    if (LicenseChoice.Equals(vehicle.LicensePlate) && vehicle.CarSize == 2)
                    {
                        i            = ParkingSpaces.parkingSpots.IndexOf(parkingSpot);
                        TimeStampOut = Vehicle.TimeCheckin();
                        AnsiConsole.Render(
                            new Panel(new Text($"Mc was found at spot: {i + 1}\nCheck in time:{vehicle.TimeStamp}\nCheck out time: {TimeStampOut}").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[green]Check Out Menu[/]")
                            .HeaderAlignment(Justify.Center));
                        Console.ReadKey();
                        parkingSpot.parkingList.RemoveAt(0);
                        parkingSpot.availableSpace += 2;
                        ReadData.SerializeObject();
                        break;
                    }
                }
            }
        }
        /////////////// MOVE VEHICLES ///////////////
        public static void MoveVehicle()
        {
            i = 0;
            j = 0;
            AnsiConsole.Render(
                new Panel(new Text($"\nTo move a vehicle please enter license number: \n").Centered())
                .Expand()
                .SquareBorder()
                .Header("[red]Move A Vehicle[/]")
                .HeaderAlignment(Justify.Center));
            LicenseChoice = Console.ReadLine().ToUpper();
            List <ParkingList> spaces = ParkingSpaces.parkingSpots;

            foreach (ParkingList parkingSpot in spaces)
            {
                foreach (Vehicle vehicle in parkingSpot.parkingList)
                {
                    if (LicenseChoice.Equals(vehicle.LicensePlate) && vehicle.CarSize == 4)
                    {
                        i = ParkingSpaces.parkingSpots.IndexOf(parkingSpot);
                        AnsiConsole.Render(
                            new Panel(new Text($"{vehicle.VehicleType} with license number: {LicenseChoice} \nParked at spot: {i}\nProceed to next step to choose a new spot").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[green]Move A Vehicle[/]")
                            .HeaderAlignment(Justify.Center));
                        Console.ReadLine();
                        parkingSpot.parkingList.RemoveAt(0);
                        AnsiConsole.Render(
                            new Panel(new Text($"\nPlease choose a new parking spot: \n").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[red]Move A Vehicle[/]")
                            .HeaderAlignment(Justify.Center));
                        SpaceChoice = Int32.Parse(Console.ReadLine());
                        parkingSpot.parkingList.Insert(SpaceChoice, vehicle);
                        parkingSpot.availableSpace = 4;
                        ReadData.SerializeObject();
                        break;
                    }


                    if (LicenseChoice.Equals(vehicle.LicensePlate) && vehicle.CarSize == 2)
                    {
                        i = ParkingSpaces.parkingSpots.IndexOf(parkingSpot);
                        AnsiConsole.Render(
                            new Panel(new Text($"{vehicle.VehicleType} with license number: {LicenseChoice} \nParked at spot: {i}\nProceed to next step to choose a new spot").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[green]Move A Vehicle[/]")
                            .HeaderAlignment(Justify.Center));
                        Console.ReadLine();
                        parkingSpot.parkingList.RemoveAt(0);
                        AnsiConsole.Render(
                            new Panel(new Text($"\nPlease choose a new parking spot: \n").Centered())
                            .Expand()
                            .SquareBorder()
                            .Header("[red]Move A Vehicle[/]")
                            .HeaderAlignment(Justify.Center));
                        SpaceChoice = Int32.Parse(Console.ReadLine());
                        parkingSpot.parkingList.Insert(SpaceChoice, vehicle);
                        parkingSpot.availableSpace += 2;
                        ReadData.SerializeObject();
                        break;
                    }
                }
            }
        }