Example #1
0
        /// <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();
        }
Example #2
0
        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;
        }
Example #3
0
        static void Main(string[] args)
        {
            //GarageManager manager = new GarageManager();
            //manager.Menu();

            GarageHandler handler = new GarageHandler();

            //skriver ut menyn
            handler.Menu();
        }
Example #4
0
        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()}");
            }
        }
Example #5
0
        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);
        }
Example #6
0
        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);
                }
            }
        }
Example #7
0
        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());
            }
        }
Example #8
0
        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();
        }
Example #9
0
        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);
        }
Example #10
0
        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}");
            }
        }
Example #11
0
        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.");
            }
        }
Example #12
0
        //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);
        }
Example #13
0
        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());
        }
Example #14
0
        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);
        }
Example #15
0
        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);
        }
Example #16
0
        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);
        }
Example #17
0
 
    class Program
 { 
 static void Main(string[] args) 

                       {
                           
 GarageHandler garageHandler = new GarageHandler(); 
 Console.Clear(); 

 garageHandler.MainMenu(); 

                       }
Example #18
0
        /// <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;
                    }
                }
            }
        }
Example #19
0
 public UI()
 {
     garageHandler = new GarageHandler();
 }
Example #20
0
        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();
        }
Example #21
0
        static void Main(string[] args)
        {
            GarageHandler garageHandler = new GarageHandler();

            garageHandler.StartUI();
        }
Example #22
0
 public UI(GarageHandler gh)
 {
     this.GH = gh;
 }