/// <summary> /// /The main entry point of the application /// </summary> /// <param name="args"></param> static void Main(string[] args) { GarageHandler garageHandler = new GarageHandler(); garageHandler.SetCapacity(10); int input = garageHandler.TextMenu(); Console.Clear(); garageHandler.MainMenu(); Garage <Vehicle> garage = new Garage <Vehicle>(10); //var benz = new Car("Car"); var volvo = new Car("Car", "ABC123", "Black", 4, "Petrol", "Volvo"); //var fiat = new Car(); var Scania = new Bus("Bus", "BUS111", "Red", 8, 20, "Electric"); //var Misubishi = new Boat(); //var Honda = new Motorcycle(); //var RollsRoyce = new Airplane(); }
private static void CreateGarage(GarageHandler handler) { Console.WriteLine("Please enter a name for the garage: (enter nothing to cancel)"); string name = Prompt(); if (string.IsNullOrWhiteSpace(name)) { return; } if (handler.Garages.Any(x => x == name)) { Console.WriteLine($"A Garage with the name '{name}' already exists"); return; } string capacityInput; int capacity; do { Console.WriteLine("Please enter the capacity of the garage: (enter '-1' to cancel)"); capacityInput = Prompt(); } while (!Int32.TryParse(capacityInput, out capacity)); if (capacity >= 0) { handler.CreateGarage(name, capacity); handler.SelectGarage(name); } return; }
static void Main(string[] args) { //GarageManager manager = new GarageManager(); //manager.Menu(); GarageHandler handler = new GarageHandler(); //skriver ut menyn handler.Menu(); }
private static void Stats(GarageHandler handler) { Console.WriteLine($"{handler.SelectedGarage}'s stats:"); var vehicletypes = handler.GetAllVehicleTypes(); var vehicles = handler.GetSelectedVehicles(); foreach (var item in vehicletypes) { Console.WriteLine($"{item}s: {vehicles.Where(x => x.ToString().StartsWith(item)).Count()}"); } }
static void VehicleMenu(GarageHandler handler, Vehicle vehicle) { List <(string, Action)> menu = new List <(string, Action)>() { ("Delete", () => handler.DeleteVehicle(vehicle)), ("-Back-", () => {}), }; Console.WriteLine(); Console.WriteLine("What do you want to do with this vehicle?"); Console.WriteLine(vehicle); MenuActions(menu); }
static void Main(string[] args) { Console.CursorVisible = false; GarageHandler handler = new GarageHandler(); bool running = true; while (running) { if (handler.SelectedGarage == null) { // Create/Delete/Select a garage var menu = new List <(string, Action)>() { ("Create a new garage", () => CreateGarage(handler)) }; if (handler.AmountOfGarages > 0) { menu.Add(("Delete a garage", () => DeleteGarage(handler))); menu.Add(("Select a Garage", () => SelectGarage(handler))); } menu.Add(("-Quit-", () => running = false)); Console.WriteLine("What do you want to do?"); MenuActions(menu); } else { // Do things to the selected garage var menu = new List <(string, Action)>(); if (handler.SelectedGarageVehicleCount < handler.SelectedGarageCapacity) { menu.Add(("Add a vehicle", () => AddVehicle(handler))); } if (handler.SelectedGarageVehicleCount > 0) { menu.Add(("Stats", () => Stats(handler))); menu.Add(("List vehicles", () => ListVehicles(handler, handler.GetSelectedVehicles()))); menu.Add(("Remove a vehicle", () => RemoveVehicle(handler))); menu.Add(("Find a vehicle", () => FindVehicle(handler))); menu.Add(("Get by License plate", () => GetVehicle(handler))); } menu.Add(("-Back-", () => handler.SelectGarage(null))); Console.WriteLine($"{handler.SelectedGarage}: {handler.SelectedGarageVehicleCount}/{handler.SelectedGarageCapacity}"); Console.WriteLine("What do you want to do?"); MenuActions(menu); } } }
private static void SelectGarage(GarageHandler handler) { var entries = handler.FormattedGarageList.ToList(); entries.Add("-Cancel-"); Console.WriteLine("Select a garage:"); int sel = Menu(entries.ToArray()); if (sel < entries.Count - 1) { handler.SelectGarage(handler.Garages.Skip(sel).First()); } }
static void Main(string[] args) { Console.WriteLine("Welcome To Garage"); //Break out to different place Console.WriteLine("Plase Enter The capacity of the garage"); int capacity = int.Parse(Console.ReadLine()); GarageHandler GH = new GarageHandler(capacity); UI ui = new UI(GH); //------Call User Interface ui.UserInterface(); }
private static void RemoveVehicle(GarageHandler handler) { var options = handler.GetSelectedVehicles().Select(x => x.ToString()).ToList(); options.Add("-Cancel-"); Console.WriteLine("Select the vehicle to remove:"); var sel = Menu(options.ToArray()); if (sel >= options.Count) { return; } handler.DeleteVehicle(sel); }
private static void DeleteGarage(GarageHandler handler) { var list = handler.FormattedGarageList.ToList(); list.Add("-Cancel-"); Console.WriteLine("Pick a garage to delete:"); var sel = Menu(list.ToArray()); if (sel >= 0 && sel < handler.AmountOfGarages) { var entry = handler.Garages.Skip(sel).First(); handler.DeleteGarage(entry); Console.WriteLine($"Deleted Garage {entry}"); } }
private static void GetVehicle(GarageHandler handler) { Console.WriteLine("Please enter the vehicle's license plate: "); string input = Prompt(); var match = handler.GetSelectedVehicles().FirstOrDefault(x => x.Plate == input); if (match != null) { Console.WriteLine(match); } else { Console.WriteLine("Could not find vehicle."); } }
//Should probably not use garagehandler in UI be and also //maybe fetch minLength,maxlength from Vehicle class public static string AskForRegistrationNumber(GarageHandler garageHandler) { bool regNrExists; string regNo = ""; do { regNrExists = false; regNo = AskForString("Enter a registrationnumber", minLength: 5, maxLength: 8); if (garageHandler.Contains(regNo)) { regNrExists = true; Console.WriteLine($"RegistrationNumber {regNo} already exists in Garage"); } } while (regNrExists); return(regNo); }
private static void ListVehicles(GarageHandler handler, IEnumerable <Vehicle> vehicles) { var list = vehicles.Select(x => x.ToString()).ToList(); if (list.Count == 0) { Console.WriteLine("There are no vehicles to list."); return; } list.Add("-Back-"); var arr = list.ToArray(); int sel = Menu(arr); if (sel >= arr.Length - 1) { return; } VehicleMenu(handler, vehicles.Skip(sel).First()); }
private static void FindVehicle(GarageHandler handler) { Console.WriteLine("Please enter your search query: (enter nothing to cancel)"); string query = Prompt(); if (string.IsNullOrWhiteSpace(query)) { return; } IEnumerable <Vehicle> matches = handler.SearchVehicles(query); if (!matches.Any()) { Console.WriteLine("No matches."); return; } Console.WriteLine("Found vehicles:"); ListVehicles(handler, matches); }
private static void AddVehicle(GarageHandler handler) { if (handler.SelectedGarageVehicleCount >= handler.SelectedGarageCapacity) { Console.WriteLine("The garage is full."); return; } Console.WriteLine("Please select a vehicle type:"); var types = handler.GetAllVehicleTypes().ToList(); types.Add("-Cancel-"); var sel = Menu(types.ToArray()); if (sel >= types.Count - 1) { return; } var selected = types[sel]; var form = handler.GetVehicleForm(selected); // TODO: FormEntry edit view that allows you to see all fields and switch between them as you please? int i = 0; Console.WriteLine("Please enter the following values:"); foreach (var item in form.Fields) { if (item is Field <string> strfield) { strfield.Entry = FormEntry(strfield.Name, strfield.Entry); } else if (item is Field <int> intfield) { intfield.Entry = FormEntry(intfield.Name, intfield.Entry); } i++; } handler.CreateVehicle(form); }
private static void InitGarage() { Console.Clear(); bool exit = false; Console.WriteLine("Nytt garage."); Console.WriteLine("Hur många parkeringsplatser (1-1000)?"); do { var parkingInput = int.TryParse(Console.ReadLine(), out int park) ? park : 0; if (parkingInput > 1 && parkingInput <= 1000) { handler = new GarageHandler(); handler.CreateGarageWithSize(parkingInput); exit = true; } else { Console.WriteLine("Oops, nu blev det fel. Försök igen."); } } while (!exit); }
class Program { static void Main(string[] args) { GarageHandler garageHandler = new GarageHandler(); Console.Clear(); garageHandler.MainMenu(); }
/// <summary> /// Låter användaren försöka skapa ett garage, användaren tar sig inte vidare utan att skapa ett garage /// </summary> static void CreateGarage() { //Roliga fraser string fras1 = "Bu.. But you need a garage to park in the garage..."; string fras2 = "Lets try this again.. Dont fail.."; string fras3 = "Sigh.. . Lets start over..."; //Loop som fortsätter tills användaren lyckats skapa ett garage while (true) { Console.Clear(); Console.WriteLine("Would you like to create a Garage? (Y/N)"); if (Console.ReadLine().ToUpper()[0] == 'N') { //Skriv ut fraser och sudda med finess foreach (char c in fras1) { Console.Write(c); Thread.Sleep(20); } Thread.Sleep(1000); foreach (char c in fras1) { Console.Write("\b \b"); Thread.Sleep(10); } foreach (char c in fras2) { Console.Write(c); Thread.Sleep(20); } Thread.Sleep(1000); foreach (char c in fras2) { Console.Write("\b \b"); Thread.Sleep(10); } } else { Console.WriteLine("Parkingspot Quantity: "); int amount; //Kolla om användarens input är ok if (int.TryParse(Console.ReadLine(), out amount)) { //Skapa objektet GarageHandler och skicka med antal parkeringar gh = new GarageHandler(amount); spotAmount = amount; //Sätter bredden på fönstet så att sökresultaten alltid får plats på sidan av Console.SetWindowSize(42 + (amount * 4), 40); break; } else { //Skriv ut fras 3 med finess foreach (char c in fras3) { Console.Write(c); Thread.Sleep(20); } Thread.Sleep(1000); foreach (char c in fras3) { Console.Write("\b \b"); Thread.Sleep(10); } continue; } } } }
public UI() { garageHandler = new GarageHandler(); }
static void Main(string[] args) { //var a = new Object[] //{ // "A", "B", 1, 2, 1.1, 2.1, true, false, null, null //}; //var b = a.GroupBy(x => x?.GetType()); Console.WriteLine("Create a garage"); var garageHandler = new GarageHandler(); var vehicleFactory = new VehicleFactory(); bool state = true; Console.WriteLine("You're in the main menu.\n"); while (state) { Console.WriteLine("Enter 1 to add a vehicle to the garage"); Console.WriteLine("Enter 2 to remove a vehicle from the garage"); Console.WriteLine("Enter 3 to list the vehicles in the garage"); Console.WriteLine("Enter 4 to list the vehicles type-wise"); Console.WriteLine("Enter 5 to search a vehicle on registration number"); Console.WriteLine("Enter 6 to search a vehicle on its property"); Console.WriteLine("Enter 0 to exit the program"); bool result = false; switch (Helpers.GetMenuChoice(6)) { case 0: state = false; break; case 1: { Console.WriteLine("Choose which type of vehicle do you want to add?"); var vehicle = vehicleFactory.NewVehicle(); if (vehicle == null) { break; } result = garageHandler.AddVehicle(vehicle); if (result) { Console.WriteLine("Your vehicle is added to the garage.\n"); } else { Console.WriteLine("Unable to add your vehicle to garage. Please try again!\n"); } break; } case 2: { Console.Write("Enter the registration number of the vehicle you want to remove: "); var regNum = Console.ReadLine(); result = garageHandler.RemoveVehicle(regNum); if (result) { Console.WriteLine("Your vehicle is removed from the garage.\n"); } else { Console.WriteLine("Unable to remove your vehicle from garage. Please try again!\n"); } break; } case 3: { int count = 0; Console.WriteLine("The list of vehicles is:"); foreach (var vehicle in garageHandler.ListOfVehicles()) { if (vehicle != null) { Console.WriteLine(vehicle); count++; } } Console.WriteLine("The number of parked vehicles are " + count); break; } case 4: { foreach (var group in garageHandler.ListOfVehicleTypes()) { Console.WriteLine($"{group.Key.Name} ({group.Count()})"); foreach (var vehicle in group) { Console.WriteLine(vehicle); } } break; } case 5: { Console.Write("Enter the registration number of the vehicle you want to find: "); var regNum = Console.ReadLine(); var vehicle = garageHandler.FindVehicle(regNum); Console.WriteLine($"Found: {vehicle}"); break; } case 6: { Console.Write("Choose a property to filter on [1 - Color, 2 - Number of wheels]: "); int menu = Helpers.GetInt(); IEnumerable <Vehicle> vehicles = new List <Vehicle>(); switch (menu) { case 1: { Console.Write("Color [0 - Black, 1 - White, 2 - Red, 3 - Blue]: "); var color = (Color)Helpers.GetInt(); vehicles = garageHandler.FindVehicle(v => v.Color == color); break; } case 2: { Console.Write("NumOfWheels: "); var wheels = Helpers.GetInt(); vehicles = garageHandler.FindVehicle(v => v.NumOfWheels == wheels); break; } default: break; } foreach (var vehicle in vehicles) { Console.WriteLine(vehicle); } break; } default: Console.WriteLine("Please enter digits between 0-6 only. Try again!\n"); break; } } Console.ReadKey(); }
static void Main(string[] args) { GarageHandler garageHandler = new GarageHandler(); garageHandler.StartUI(); }
public UI(GarageHandler gh) { this.GH = gh; }