Example #1
0
        static void Main(string[] args)
        {
            Test <Vehicle> t = new Test <Vehicle>();

            foreach (Vehicle v in t)
            {
                Console.WriteLine(v.Color);
            }

            Garage <Vehicle> garage = new Garage <Vehicle>();

            //Object sender;
            //EventArgs e;
            AppDomain.CurrentDomain.ProcessExit += new EventHandler((sender, e) => OnProcessExit(sender, e, garage));


            // Some biolerplate to react to close window event, CTRL-C, kill, etc
            //_handler += new EventHandler(Handler);
            //SetConsoleCtrlHandler(_handler, true);


            seed(garage);
            new Program().mainMenu(garage);
        }
Example #2
0
        public void mainMenu(Garage <Vehicle> garage)
        {
            int selected = 1;

            while (true)
            {
                Console.Clear();
                string menu = "";
                if (selected == 1)
                {
                    WriteBlueLine("List all vehicles");
                }
                else
                {
                    Console.WriteLine("List all vehicles");
                }
                if (selected == 2)
                {
                    WriteBlueLine("Add Vehicle");
                }
                else
                {
                    Console.WriteLine("Add Vehicle");
                }
                if (selected == 3)
                {
                    WriteBlueLine("Remove Vehicle");
                }
                else
                {
                    Console.WriteLine("Remove Vehicle");
                }
                if (selected == 4)
                {
                    WriteBlueLine("List all vehicles and how many of each is in garage");
                }
                else
                {
                    Console.WriteLine("List all vehicles and how many of each is in garage");
                }
                if (selected == 5)
                {
                    WriteBlueLine("Search Vehicle");
                }
                else
                {
                    Console.WriteLine("Search Vehicle");
                }
                if (selected == 6)
                {
                    WriteBlueLine("Exit App");
                }
                else
                {
                    Console.WriteLine("Exit App");
                }

                /*Console.WriteLine("Enter menu number \n(1, 2, 3 ,4, 0) of your choice\n\n"
                 + "\n1. Add a Vehicle"
                 + "\n2. Remove a Vehicle"
                 + "\n3. List all vehicles"
                 + "\n4. List all vehicles and how many of each is in the garage"
                 + "\n5. Search for a vehicle by regnumber"
                 */

                char input = ' '; //Creates the character input to be used with the switch-case below.
                try
                {
                    var kee = Console.ReadKey().Key;
                    if (kee == ConsoleKey.DownArrow)
                    {
                        selected += 1;
                        if (selected > 6)
                        {
                            selected = 1;
                        }
                        //Console.WriteLine(selected);
                    }
                    else if (kee == ConsoleKey.UpArrow)
                    {
                        selected -= 1;
                        if (selected < 1)
                        {
                            selected = 6;
                        }
                    }
                    else if (kee == ConsoleKey.Enter)
                    {
                        if (selected == 6)
                        {
                            return;
                        }
                        RunSubMenu(garage, selected);
                    }
                    //input = Console.ReadLine()[0]; //Tries to set input to the first char in an input line
                }
                catch (IndexOutOfRangeException) //If the input line is empty, we ask the users for some input.
                {
                    //Console.Clear();
                    //Console.WriteLine("Please enter some input!");
                }

                /*switch (input)
                 * {
                 *  case '1':
                 *  addVehicle(garage);
                 *  break;
                 *  case '2':
                 *  Console.Write("Enter regNr for the Vehicle to remove: ");
                 *  string regNr = Console.ReadLine();
                 *  garage.removeVehicle(regNr);
                 *  Console.ReadKey();
                 *  break;
                 *  case '3':
                 *      Print(garage);
                 *      break;
                 *  case '4':
                 *      string[] vehicleTypes = { "Airplane", "Motorcycle", "Car", "Bus", "Boat" };
                 *      int listSize = vehicleTypes.Length;
                 *      int[] countArray = new int[listSize];
                 *
                 *      foreach (Vehicle v in garage)
                 *          for (int i = 0; i < listSize; i++ )
                 *              if (v.GetType().ToString().Equals("Garage1._0."+vehicleTypes[i])) countArray[i] += 1;
                 *      for (int i = 0; i < listSize; i++)
                 *          Console.WriteLine(vehicleTypes[i] + "   antal: " + countArray[i]);
                 *
                 *      Console.ReadKey();
                 *
                 *      break;
                 *  case '5':
                 *      Console.Write("Enter regNr for the Vehicle to remove: ");
                 *      regNr = Console.ReadLine();
                 *      Vehicle vehicle = garage.searchVehicle(regNr);
                 *      if (null == vehicle)
                 *          Console.WriteLine("No vehicle matching regnr was found");
                 *      else
                 *          Console.WriteLine(vehicle.regnr + " : " + vehicle.GetType());
                 *      Console.ReadKey();
                 *      break;
                 *
                 *  case '0':
                 *  return;
                 *  default:
                 *  Console.WriteLine("Please enter some valid input (0, 1, 2, 3, 4)");
                 *  Console.ReadKey();
                 *  break;
                 * }*/
            }
        }
Example #3
0
        //EN ny kommentar
        #region Trap application termination

        /*
         * [System.Runtime.InteropServices.DllImport("Kernel32")]ยง
         * private static extern bool SetConsoleCtrlHandler(EventHandler handler, bool add);
         *
         * private delegate bool EventHandler(CtrlType sig);
         * static EventHandler _handler;
         *
         * enum CtrlType
         * {
         *  CTRL_C_EVENT = 0,
         *  CTRL_BREAK_EVENT = 1,
         *  CTRL_CLOSE_EVENT = 2,
         *  CTRL_LOGOFF_EVENT = 5,
         *  CTRL_SHUTDOWN_EVENT = 6
         * }
         *
         * //private static bool Handler(CtrlType sig, Garage<Vehicle> gar)
         *
         *
         * private static bool Handler(CtrlType sig)
         * {
         *  Console.WriteLine("Exiting system due to external CTRL-C, or process kill, or shutdown");
         *
         *  //do your cleanup here
         *  //Thread.Sleep(5000); //simulate some cleanup delay
         *
         *  Console.WriteLine(sig.ToString());
         *
         *  //StaticGar.SaveVehicles();
         *
         *
         *
         *  Console.WriteLine("Cleanup complete");
         *
         *  //allow main to run off
         *  //exitSystem = true;
         *
         *  //shutdown right away so there are no lingering threads
         *  Environment.Exit(-1);
         *
         *  return true;
         * }*/
        #endregion

        static void OnProcessExit(object sender, EventArgs e, Garage <Vehicle> garage)
        {
            Console.WriteLine("I'm out of here");
            Console.ReadKey();
        }
Example #4
0
        void RunSubMenu(Garage <Vehicle> garage, int selected)
        {
            Console.Clear();
            switch (selected)
            {
            case 2:
                addVehicle(garage);
                break;

            case 3:
                Console.Write("Enter regNr for the Vehicle to remove: ");
                string regNr  = Console.ReadLine();
                bool   result = garage.removeVehicle(regNr);
                if (result)
                {
                    Console.WriteLine("Vehicle was successfully removed");
                }
                else
                {
                    Console.WriteLine("No vehicle matched criteria: " + regNr);
                }
                Console.ReadKey();
                break;

            case 1:
                Console.Clear();
                Print(garage);
                break;

            case 4:
                /*  var query = from g in garage
                 *            group g by garage.GetType() into lettergroup
                 *            orderby lettergroup.Key ascending
                 *            select lettergroup;*/
                var query = from g in garage
                            group g by g.GetType();

                foreach (var group in query)
                {
                    Console.WriteLine(group.Key.ToString().Substring(22) + " Antal: " + group.Count());
                    //foreach(var vehicle in group) Console.WriteLine(vehicle.ToString());
                }

                /*
                 * string[] vehicleTypes = { "Airplane", "Motorcycle", "Car", "Bus", "Boat" };
                 * int listSize = vehicleTypes.Length;
                 * int[] countArray = new int[listSize];
                 *
                 * foreach (Vehicle v in garage) {
                 *  //Console.WriteLine(v.GetType());
                 *  for (int i = 0; i < listSize; i++) {
                 *      if (v.GetType().ToString().Equals("GarageV1._0Skelleftea." + vehicleTypes[i])) countArray[i] += 1;
                 *  }
                 * }
                 *  Console.Clear();
                 *  for (int i = 0; i < listSize; i++)
                 *  Console.WriteLine(vehicleTypes[i] + "   antal: " + countArray[i]);
                 */
                Console.ReadKey();

                break;

            case 5:
                Console.Clear();
                Console.Write("Enter regNr for Vehicle to find: ");
                regNr = Console.ReadLine();
                IEnumerable <Vehicle> res = garage.searchVehicle(regNr);
                if (res.Count() == 0)
                {
                    Console.WriteLine("No vehicle was found matching regnr: {0}", regNr);
                }
                else
                {
                    foreach (Vehicle v in res)
                    {
                        Console.WriteLine(v.RegNr + " : " + v.GetType());
                    }
                }
                Console.ReadKey();
                break;

            case 6:
                return;

            default:
                break;
            }
        }