コード例 #1
0
ファイル: Program.cs プロジェクト: ParadoxMH/Parking
        private static void CarMenu(Parking parking)
        {
            MenuDrawer.Index = 0;
            while (true)
            {
                switch (MenuDrawer.DrawMenu(new List <string>()
                {
                    "Create vehicle", "Put vehicle", "Delete vehicle", "Remove vehicle", "Exit"
                }))
                {
                case "Create vehicle":
                    VehicleRepository.CreateVehicle(parking);
                    break;

                case "Put vehicle":
                    VehicleRepository.PutVehicle(parking);
                    break;

                case "Delete vehicle":

                    break;

                case "Remove vehicle":

                    break;

                case "Exit":
                    MenuDrawer.Index = 0;
                    return;
                }
                Console.Clear();
            }
        }
コード例 #2
0
        public static void CreateVehicle(Parking parking)
        {
            var vehicle = new Vehicle();

            MenuDrawer.Index = 0;
            var k = true;

            Console.Clear();
            while (k)
            {
                Console.WriteLine("Choose type of Vehicle:");
                var a = MenuDrawer.DrawMenu(new List <string>()
                {
                    VehicleType.Car.ToString(), VehicleType.Truck.ToString(), VehicleType.Bus.ToString(), VehicleType.Bike.ToString(), "Exit"
                });

                if (Enum.TryParse(a, out VehicleType type))
                {
                    vehicle.Type = type;
                    k            = false;
                }
                if (a == "Exit")
                {
                    MenuDrawer.Index = 0;
                    return;
                }
            }
            MenuDrawer.Index = 0;


            Console.WriteLine("Enter car balance:");
            if (!double.TryParse(Console.ReadLine(), out double bal))
            {
                return;
            }
            vehicle.Balance = bal;
            vehicle.Id      = Guid.NewGuid();
            worldVehicles.Add(vehicle);

            Console.WriteLine($"{vehicle.Type.ToString()} was successfuly created!\r\n\r\nPress any key to go back to menu...");
            Console.ReadLine();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: ParadoxMH/Parking
        static void Main(string[] args)
        {
            List <string> menuItems = new List <string>()
            {
                "Get current balance",
                "Get sum of profit for the last min",
                "Get parking stats(avail/unavail)",
                "Get all transactions for the last min",
                "Get all transactions",
                "Get all cars",
                "Vehicle menu",
                "Deposit car balance",
                "Exit"
            };

            Console.CursorVisible = false;

            var parking = Parking.GetInstance();


            var timer = new Timer((e) =>
            {
                UpdateTransaction(parking);
            }, null, TimeSpan.Zero, TimeSpan.FromSeconds(10));

            MenuDrawer.Index = 0;
            while (true)
            {
                switch (MenuDrawer.DrawMenu(menuItems))
                {
                case "Get current balance":
                    Console.Clear();
                    Console.WriteLine($"Current parking balance is {parking.Balance}$;\r\n\r\nPress any key to go back to menu...");
                    Console.Read();
                    break;

                case "Get sum of profit for the last min":
                    Console.Clear();

                    double sum = 0;
                    foreach (var tr in parking.Transactions)
                    {
                        sum += tr.Amount;
                    }
                    Console.WriteLine($"Profit for the last min is {sum}$;\r\n\r\nPress any key to go back to menu...");
                    Console.Read();
                    break;

                case "Get parking stats(avail/unavail)":
                    Console.Clear();
                    Console.WriteLine($"Currently available {parking.Capacity - parking.Vehicles.Capacity} parkings;\r\n\r\nPress any key to go back to menu...");
                    Console.Read();
                    break;

                case "Get all transactions for the last min":
                    Console.Clear();
                    Console.WriteLine($"All transactions for the last min:");
                    foreach (var tr in parking.Transactions)
                    {
                        Console.WriteLine(tr);
                    }
                    Console.WriteLine("Press any key to go back to menu...");
                    Console.Read();
                    break;

                case "Get all transactions":
                    Console.Clear();
                    ShowAllTransactions();
                    Console.WriteLine("Press any key to go back to menu...");
                    Console.Read();
                    break;

                case "Get all cars":
                    Console.Clear();
                    foreach (var car in parking.Vehicles)
                    {
                        Console.WriteLine(car);
                    }
                    Console.WriteLine("Press any key to go back to menu...");
                    Console.Read();
                    break;

                case "Vehicle menu":
                    Console.Clear();
                    CarMenu(parking);
                    break;

                case "Exit":
                    Environment.Exit(0);
                    break;
                }
                Console.Clear();
            }
            Console.Read();
        }
コード例 #4
0
        public static void PutVehicle(Parking parking)
        {
            var vehicles = new List <string>();

            foreach (var v in worldVehicles)
            {
                if (!parking.Vehicles.Any(ve => ve.ToString() == v.ToString()))
                {
                    vehicles.Add(v.ToString());
                }
            }

            if (vehicles.Any())
            {
                MenuDrawer.Index = 0;
                string choosedName = "";
                Console.Clear();
                Console.WriteLine("Choose a Vehicle:");
                while (choosedName == "")
                {
                    choosedName = MenuDrawer.DrawMenu(vehicles);
                }
                MenuDrawer.Index = 0;

                var choosedVehicle = worldVehicles.First(v => (v.ToString() == choosedName));
                parking.Vehicles.Add(choosedVehicle);

                double fee = 0;
                switch (choosedVehicle.Type)
                {
                case VehicleType.Car:
                    fee = ParkingSettings.CarTariff;
                    break;

                case VehicleType.Truck:
                    fee = ParkingSettings.TruckTariff;
                    break;

                case VehicleType.Bus:
                    fee = ParkingSettings.BusTariff;
                    break;

                case VehicleType.Bike:
                    fee = ParkingSettings.BikeTariff;
                    break;
                }

                parking.Transactions.Add(new Transaction()
                {
                    Id     = Guid.NewGuid(),
                    Amount = fee,
                    CarId  = choosedVehicle.Id,
                    Time   = DateTime.Now
                });
            }
            else
            {
                Console.WriteLine("Please create vehicles before putting it..");
                Console.ReadLine();
                return;
            }
        }