public void LoadParking(Parking parking) { var jsonFormatter = new DataContractJsonSerializer(typeof(List <Parking>)); List <Parking> parkings = new List <Parking>(); using (var file = new FileStream($@"{Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)}\parkings.json", FileMode.OpenOrCreate)) { if (file.Length > 0) { parkings.AddRange(jsonFormatter.ReadObject(file) as List <Parking>); } else { Console.WriteLine("Нет доступных парковок!"); Console.ReadKey(); MainMenu menu = new MainMenu(); file.Close(); menu.Menu(parking); } } Console.Clear(); Parking p = new Parking(); Console.WriteLine("Выберите парковку для загрузки:"); if (parkings != null) { foreach (Parking park in parkings) { Console.WriteLine(park.Title); } } string parkName = Console.ReadLine(); p = parkings.Where(x => x.Title == parkName).FirstOrDefault(); if (p != null) { Console.WriteLine($"Парковка {p.Title} загружена"); Console.ReadKey(); Menu(p); } else { Console.WriteLine("Такой парковки нет!"); LoadParking(parking); } }
private void DeleteCar(Parking parking) { if (parking.NumberOfCars == 0) { Console.WriteLine("Все места на парковке свободны, вы не можете удалить машину."); Console.ReadKey(); Menu(parking); } Console.WriteLine("Введите номер освобождаемого места"); int placeNumber = 0; bool valid = Int32.TryParse(Console.ReadLine(), out placeNumber); if (valid) { ParkingPlace place = null; foreach (ParkingPlace parkingPlace in parking.ParkingPlaces) { if (parkingPlace.Id == placeNumber) { place = parkingPlace; } } if (place != null) { if (place.CarInPlace != null) { place.CarInPlace = null; Console.WriteLine($"Место {place.Id} освобождено"); Console.ReadKey(); Menu(parking); } else { Console.WriteLine("Это место уже свободно!"); DeleteCar(parking); } } else { Console.WriteLine("Такого места нет!"); DeleteCar(parking); } } else { Console.WriteLine("Вы ввели не число!"); DeleteCar(parking); } }
private void DisplayParkingStatus(Parking parking) { int emptyPlaces = 0; int allPlaces = parking.ParkingPlaces.Count; string emp = ""; foreach (ParkingPlace place in parking.ParkingPlaces) { if (place.CarInPlace == null) { emptyPlaces++; emp += $"{place.Id}, "; } } Console.WriteLine($"На парковке сейчас {emptyPlaces} свободных мест из {allPlaces}. Это места: {emp}"); Console.ReadKey(); Menu(parking); }
public void Menu(Parking parking) { Console.Clear(); switch (Display()) { case "new": parking.CreateNewParking(parking); break; case "load": parking.LoadParking(parking); break; case "exit": Environment.Exit(1); break; default: Console.Clear(); Menu(parking); break; } }
private void AddNewCar(Parking parking) { Console.WriteLine("Введите название пребывающей машины"); string carName = Console.ReadLine(); if (carName.Length == 0) { Console.WriteLine("Введена пустая строка!"); AddNewCar(parking); } Console.WriteLine("Введите номер пребывающей машины"); string carNumber = Console.ReadLine(); if (carNumber.Length == 0) { Console.WriteLine("Введена пустая строка!"); AddNewCar(parking); } foreach (ParkingPlace place in parking.ParkingPlaces) { if (place.CarInPlace != null) { if (place.CarInPlace.Number == carNumber) { Console.WriteLine("Машина с таким номером уже находится на вашей парковке!"); AddNewCar(parking); } } } Console.WriteLine("Введите номер места для этой машины"); int placeNumber = 0; bool valid = Int32.TryParse(Console.ReadLine(), out placeNumber); if (valid) { ParkingPlace place = null; foreach (ParkingPlace parkingPlace in parking.ParkingPlaces) { if (parkingPlace.Id == placeNumber) { place = parkingPlace; } } if (place != null) { if (place.CarInPlace == null) { place.CarInPlace = new Car(carName, carNumber); parking.NumberOfCars++; Console.WriteLine($"Автомобиль {carName} занял свое место - {place.Id}."); Console.ReadKey(); Menu(parking); } else { Console.WriteLine("Место уже занято!"); AddNewCar(parking); } } else { Console.WriteLine("Такого места нет!"); AddNewCar(parking); } } else { Console.WriteLine("Вы ввели не число!"); AddNewCar(parking); } }