示例#1
0
        public Logger(Parking parking, int interaval)
        {
            timer = new InternalTimer(interaval, WriteLogFile);

            Parking = parking;

            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
        }
示例#2
0
 //Поиск машины на парковке по номеру
 public static bool SeachCarOnParking(Parking parking, string carNum)
 {
     if (parking[carNum]?.Number != null)
     {
         return(true);
     }
     else
     {
         Console.WriteLine($"Автомобиля с номером {carNum} на парковке нет!");
         Console.WriteLine();
         return(false);
     }
 }
示例#3
0
        public bool Action()
        {
            var flag  = true;
            var value = GetAndValidateInputInt(0, 8);

            Console.Clear();
            switch (value)
            {
            case 1:
                Console.WriteLine($"Total revenue: {_parking.GetTotalRevenue()}");
                break;

            case 2:
                Console.WriteLine($"Revenue for the last minute:{Parking.AmountForTheLastMinute()}");
                break;

            case 3:
                Console.WriteLine($"Free spaces: {_parking.GetNumberOfFreePlaces()}.\nBusy spaces: {Parking.GetNumberOfBusyPlaces()}.");
                break;

            case 4:
                AddCarMenuItem();
                break;

            case 5:
                RemoveCarMenuItem();
                break;

            case 6:
                TopUpCarBalanceMenuItem();
                break;

            case 7:
                DisplayTransactionsForTheLastMinuteMenuItem();
                break;

            case 8:
                DisplayTransactionsFileMenuItem();
                break;

            default:
                flag = false;
                break;
            }

            if (flag)
            {
                EndOfParagraph();
            }
            return(flag);
        }
示例#4
0
        static void Main(string[] args)
        {
            // Initialize the repository
            Parking parking = new Parking("Underground parking garage", 5);

            // Initialize entity
            Car volvo = new Car("Volvo", "XC70", 2010);

            // Print Car
            Console.WriteLine(volvo); // Volvo XC70 (2010)

            // Add Car
            parking.Add(volvo);

            // Remove Car
            Console.WriteLine(parking.Remove("Volvo", "XC90")); // False
            Console.WriteLine(parking.Remove("Volvo", "XC70")); // True

            Car peugeot = new Car("Peugeot", "307", 2011);
            Car audi    = new Car("Audi", "S4", 2005);

            parking.Add(peugeot);
            parking.Add(audi);

            // Get Latest Car
            Car latestCar = parking.GetLatestCar();

            Console.WriteLine(latestCar); // Peugeot 307 (2011)
            //parking.Remove("Peugeot", "307");
            //parking.Remove("Audi", "S4");
            //Car latestCar1 = parking.GetLatestCar();

            //Console.WriteLine(latestCar1);
            // Get Car
            Car audiS4 = parking.GetCar("Audi", "S4");

            Console.WriteLine(audiS4); // Audi S4 (2005)

            // Count
            Console.WriteLine(parking.Count); // 2

            // Get Statistics
            Console.WriteLine(parking.GetStatistics());
            // The cars are parked in Underground parking garage:
            // Peugeot 307(2011)
            // Audi S4(2005)
        }
示例#5
0
        private void TopUpCarBalanceMenuItem()
        {
            var busyPlaces = Parking.GetNumberOfBusyPlaces();

            if (busyPlaces == 0)
            {
                Console.WriteLine("There are no cars in the parking.");
            }
            else
            {
                Console.WriteLine(
                    $"To top up car balance, please, enter the number of this car from 1 to {busyPlaces}:");
                var numberOfCar = GetAndValidateInputInt(1, busyPlaces);
                Console.WriteLine("Enter the amount of money:");
                var money = GetAndValidateInputDecimal();
                Console.WriteLine($"The balance is topped up. The new balance: {_parking.TopUp(numberOfCar, money)}");
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            Parking parking = new Parking("Underground parking garage", 5);
            Car     volvo   = new Car("Volvo", "XC70", 2010);

            Console.WriteLine(volvo);

            parking.Add(volvo);
            Console.WriteLine(parking.Remove("Volvo", "XC90"));
            Console.WriteLine(parking.Remove("Volvo", "XC70"));

            Car peugeot = new Car("Peugeot", "307", 2011);
            Car audi    = new Car("Audi", "S4", 2005);

            parking.Add(peugeot);
            parking.Add(audi);
            Console.WriteLine(parking.GetStatistics());
            Console.WriteLine(parking.GetLatestCar());
            Console.WriteLine(parking.GetCar("Audi", "S4"));
        }
示例#7
0
        static void Main(string[] args)
        {
            var poc = new Parking <Car>(90);

            var soc = new Parking <Boat>(12);

            var toc = new Parking <Truck>(15);

            Car golf = new Car
            {
                Make  = "Golf",
                Model = "MK 6 GTD"
            };

            Boat agro = new Boat
            {
                Name      = "Titanic",
                Besplatno = false
            };

            Truck scania = new Truck
            {
                Make  = "Scania",
                Model = "Scania 580"
            };

            poc.ParkVehicles(golf);
            poc.LeaveVehicle(golf);

            Console.WriteLine();

            soc.ParkVehicles(agro);
            soc.LeaveVehicle(agro);

            Console.WriteLine();

            toc.ParkVehicles(scania);
            toc.LeaveVehicle(scania);

            Console.ReadLine();
        }
示例#8
0
        static void Main(string[] args)
        {
            Parking poc   = new Parking(100);
            Car     astra = new Car
            {
                Make  = "Opel",
                Model = "Astra"
            };

            Boat yamaha = new Boat
            {
                Name      = "YamahaBoat",
                BesPlatno = true,
            };

            poc.ParkVehicle(astra);
            Console.WriteLine(astra.Make + " " + astra.Model + " parked :" + astra.IsParked);
            astra.LeaveParking();
            Console.WriteLine(astra.Make + " " + astra.Model + " parked :" + astra.IsParked);
            poc.ParkBoat(yamaha);
            Console.WriteLine(yamaha.Name + " " + " ima li platno :" + yamaha.BesPlatno + "\nparked :" + yamaha.IsParked);
            yamaha.LeaveParking();
            Console.WriteLine(yamaha.Name + " " + " ima li platno :" + yamaha.BesPlatno + "\nparked :" + yamaha.IsParked);
        }
示例#9
0
文件: Menu.cs 项目: KGerasymiva/Task2
 public Menu(Parking parking)
 {
     Parking = parking;
 }
示例#10
0
 public void LeaveParking(Parking <IVehicle> parking)
 {
     Parking.LeaveVehicle(this);
     //   throw new NotImplementedException();
 }
示例#11
0
 public void LeaveParking()
 {
     Parking.LeaveVehicle(this);
 }
示例#12
0
 private static async void OnTimedEventForTransactionsLogging(Object source, ElapsedEventArgs e) => await Parking.WriteToTransactionsFileAsync();
示例#13
0
        public static void ShowMenu()
        {
            int    id, sum = 0;
            string buf;
            bool   check = false;

            while (true)
            {
                PrintMenuTemplate();
                buf = Console.ReadLine();
                Console.Clear();
                switch (buf)
                {
                case "1":
                    Car car = new Car();
                    Console.WriteLine("Please enter car type(Passenger(0),Truck(1),Bus(2),Motorcycle(3)): ");
                    while (!check)
                    {
                        try
                        {
                            car.Type = (CarTypes)Enum.Parse(typeof(CarTypes), Console.ReadLine());
                            if (int.TryParse(Convert.ToString(car.Type), out int a))
                            {
                                Console.WriteLine("Not valid car type. Car type can not contains number. Please try again.");
                            }
                            else
                            {
                                check = true;
                            }
                        }
                        catch (ArgumentException)
                        {
                            Console.WriteLine("Not valid car type. Please try again.");
                        }
                        catch (OverflowException)
                        {
                            Console.WriteLine("Not valid car type. Car type can not contains number. Please try again.");
                        }
                    }
                    check = false;

                    Console.WriteLine("Please enter car id: ");
                    while (!Int32.TryParse(Console.ReadLine(), out id))
                    {
                        Console.WriteLine("Enter valid id please: ");
                    }
                    ;
                    car.Id = id;

                    Parking.AddCar(car);
                    break;

                case "2":
                    Console.WriteLine("Please enter car id: ");
                    while (!Int32.TryParse(Console.ReadLine(), out id))
                    {
                        Console.WriteLine("Enter valid id please: ");
                    }
                    ;

                    Parking.RemoveCar(id);
                    break;

                case "3":
                    Console.WriteLine("Please enter car id: ");
                    while (!Int32.TryParse(Console.ReadLine(), out id))
                    {
                        Console.WriteLine("Enter valid id please: ");
                    }
                    ;
                    Console.WriteLine("Input sum please: ");
                    while (!Int32.TryParse(Console.ReadLine(), out sum))
                    {
                        Console.WriteLine("Enter valid sum please: ");
                    }
                    ;

                    Car c = Parking.Cars.Find(cars => cars.Id == id);
                    if (c == null)
                    {
                        Console.WriteLine("No such car at parking");
                    }
                    else
                    {
                        c.Balance += sum;
                    }

                    break;

                case "4":
                    Parking.PrintTransactions();
                    break;

                case "5":
                    Settings.LogReader();
                    break;

                case "6":
                    Console.WriteLine("Total parking balance:{0}", Parking.Balance);
                    break;

                case "7":
                    Console.WriteLine("Current parking balance:{0}", Parking.CurrentBalance);
                    break;

                case "8":
                    Console.WriteLine("Free parking spaces: {0}", Parking.ParkingSpace);
                    break;

                case "9":
                    Console.WriteLine("Occupied parking spaces: {0}/{1}", Settings.parkingSpaceLimit - Parking.ParkingSpace,
                                      Settings.parkingSpaceLimit);
                    break;

                case "10":
                    Environment.Exit(0);
                    return;

                default:
                    Console.WriteLine("Please enter only existing menu option numbers!");
                    break;
                }
            }
        }
示例#14
0
        //Initialize settings and create parking.
        public static void Start()
        {
            bool actions = true;
            int  action  = 0;
            bool choise  = true;

            Console.WriteLine("Hi! It`s program which simulate work of parking... To open main menu, press any button:");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("To start work with parking, please initialize Settings and Parking. Press any key, to start...");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("-----Initializing settings-----");
            Console.WriteLine("Make choise to set settings. If you do not choose some field it will accept the default value.");
            while (actions)
            {
                Console.WriteLine("1) Set timeout.");
                Console.WriteLine("2) Set prices for parking.");
                Console.WriteLine("3) Set parking space.");
                Console.WriteLine("4) Set fine.");
                Console.WriteLine("5) Show default values.");
                Console.WriteLine("6) Complete the settings.\n");
                Console.WriteLine("Enter your choise: ");
                action = InputValue();
                Console.Clear();
                switch (action)
                {
                case 1:
                    Console.WriteLine("Enter timeout:");
                    timeOut = InputValue();
                    Console.WriteLine("Done!");
                    Console.ReadKey();
                    break;

                case 2:
                    Console.WriteLine("Enter prices for parking through spaces (Bus, Truck, Passenger, Motorcycle)");
                    while (choise)
                    {
                        string[] data = Console.ReadLine().Split();
                        try
                        {
                            pricesForParking[CarType.Bus]        = int.Parse(data[0]);
                            pricesForParking[CarType.Truck]      = int.Parse(data[1]);
                            pricesForParking[CarType.Passenger]  = int.Parse(data[2]);
                            pricesForParking[CarType.Motorcycle] = int.Parse(data[3]);
                            choise = false;
                        }
                        catch
                        {
                            Console.WriteLine("Error! Can`t read your choise! Please, try again!");
                        }
                    }
                    Console.WriteLine("Done!");
                    Console.ReadKey();
                    break;

                case 3:
                    Console.WriteLine("Enter parking space:");
                    parkingSpace = InputValue();
                    Console.WriteLine("Done!");
                    Console.ReadKey();
                    break;

                case 4:
                    Console.WriteLine("Enter fine:");
                    fine = InputValue();
                    Console.WriteLine("Done!");
                    Console.ReadKey();
                    break;

                case 5:
                    Settings.Show();
                    Console.ReadKey();
                    break;

                case 6:
                    Settings.SetSettings(timeOut, pricesForParking, parkingSpace, fine);
                    Console.WriteLine("Settings sets succesfull!");
                    Console.ReadKey();
                    actions = false;
                    break;
                }
                Console.Clear();
            }
            Parking.Initialzie();
            Console.WriteLine("To start work with parking press any button...");
            Console.ReadKey();
            Console.Clear();
            Parking.Instance.Start();
        }
示例#15
0
        public static void Main(string[] args)
        {
            var cars = new List <Car>()
            {
                new Car()
                {
                    Name = "Ford", Number = "E003KM150"
                },
                new Car()
                {
                    Name = "Suzuki", Number = "E886KP190"
                }
            };

            var parking = new Parking();

            foreach (var car in cars)
            {
                parking.Add(car);
            }

            Parking.CarsOnParking(parking);//Машины на парковке


            //Марки машин на парковке
            foreach (var carName in parking.GetNames())
            {
                Console.WriteLine($"{carName} ");
            }

            Console.WriteLine();

            //Поиск машины на парковке по номеру

            Console.WriteLine("Введите номер искомого автомобиля");
            var seachNum = Console.ReadLine();

            if (Parking.SeachCarOnParking(parking, seachNum))
            {
                Console.WriteLine($"На парковке есть автомобиль: {parking[seachNum].Name} номер {parking[seachNum].Number}");
                Console.WriteLine();
            }


            //Выезд автомобиля
            Console.WriteLine("Введите номер выезжающего автомобиля");
            var outNum = Console.ReadLine();

            if (Parking.SeachCarOnParking(parking, outNum))
            {
                parking.GoOut(parking[outNum]);
            }

            Parking.CarsOnParking(parking); //Машины на парковке


            //Въезд нового автомобиля
            Console.WriteLine("Введите номер нового автомобиля");
            var num = Console.ReadLine();

            Console.WriteLine("Введите марку нового автомобиля");
            var name = Console.ReadLine();

            //Console.WriteLine();

            //parking[parking.Count - 1] = new Car() { Name = name, Number = num };
            parking.Add(new Car()
            {
                Name = name, Number = num
            });
            //Console.WriteLine($"Въехал новый автомобиль: {parking[parking.Count - 1]}");
            //Console.WriteLine();

            Parking.CarsOnParking(parking); //Машины на парковке
        }
示例#16
0
        static void Main(string[] args)
        {
            // Generate Car`s Parking and Cars

            Parking <Car> carParking = new Parking <Car>(2);

            Car astra = new Car
            {
                Make  = "Opel",
                Model = "Astra"
            };

            Car fiat = new Car
            {
                Make  = "Fiat",
                Model = "Punto"
            };

            Car suzuki = new Car
            {
                Make  = "Suzuki",
                Model = "Swift"
            };

            Console.WriteLine();
            Console.WriteLine("Parking cars:");
            Console.WriteLine();

            carParking.ParkVehicle(astra);
            carParking.ParkVehicle(fiat);
            carParking.ParkVehicle(suzuki);

            Console.WriteLine();
            Console.WriteLine("Cars leaving parking: ");
            Console.WriteLine();

            carParking.LeaveVehicle(suzuki);
            astra.LeaveParking();
            astra.EnterParking(carParking);

            Console.WriteLine();
            Console.WriteLine("Parking cars:");
            Console.WriteLine();

            carParking.ParkVehicle(suzuki);

            //Generate Boat and Boat`s Parking

            Parking <Boat> boatParking = new Parking <Boat>(1);

            Boat Milena = new Boat();

            Milena.Name = "Milena";

            Boat BlackPearl = new Boat();

            BlackPearl.Name = "BlackPearl";

            Console.WriteLine();
            Console.WriteLine("Parking boats");
            Console.WriteLine();

            boatParking.ParkVehicle(Milena);
            boatParking.ParkVehicle(BlackPearl);
        }
示例#17
0
        static void Main(string[] args)
        {
            Parking myParking = new Parking();

            Console.WriteLine("Hello in my parking lot!'\n" +
                              "1) Find out the current balance of parking\n" +
                              "2) The amount of money earned in the last minute\n" +
                              "3) Find out the number of free / busy places in the parking lot\n" +
                              "4) Show all transactions in the last minute\n" +
                              "5) Print the entire Transaction history (after reading the data from the Transactions.log file)\n" +
                              "6) Display the list of all vehicles\n" +
                              "7) Createthe vehicle\n" +
                              "8) Remove parking vehicle\n" +
                              "9) Refill the balance of a particular vehicle\n");

            string input;

            do
            {
                input = Console.ReadLine();
                switch (input)
                {
                case "1":
                    Console.WriteLine(myParking.Balance);
                    break;

                case "2":
                    myParking.EarnedMoneyForLastMinute();
                    break;

                case "3":
                    myParking.ShowPlaces();
                    break;

                case "4":
                    myParking.ShowLastTransactions();
                    break;

                case "5":
                    myParking.ShowAllTransactions();
                    break;

                case "6":
                    myParking.ShowCar();
                    break;

                case "7":
                    myParking.addCar();
                    break;

                case "8":
                    myParking.RemoveCar();

                    break;

                case "9":
                    myParking.AddMoney();
                    break;
                }
            } while (true);
        }