/// <summary>
        /// method gets the lower and higher values for the ID query
        /// </summary>
        /// <param name="lowerId">minimum vertical</param>
        /// <param name="higherId">maximum vertical</param>
        public static void GetIdQueryLowHiValues(out int lowerId, out int higherId)
        {
            lowerId  = 0;
            higherId = 0;
            string userResponse = "";

            DisplayReset();

            DisplayMessage("");
            Console.WriteLine(ConsoleUtil.Center("Query Firearms by Id", WINDOW_WIDTH));
            DisplayMessage("");

            DisplayPromptMessage("Enter the lower ID: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                lowerId = ConsoleUtil.ValidateIntegerResponse("Please enter the lower ID.", userResponse);
            }

            DisplayMessage("");

            DisplayPromptMessage("Enter the higher ID: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                higherId = ConsoleUtil.ValidateIntegerResponse("Please enter the higher ID.", userResponse);
            }

            DisplayMessage("");

            DisplayMessage(String.Format("You have entered {0} as the lower ID and {1} as the higher ID.", lowerId, higherId));

            DisplayMessage("");

            DisplayContinuePrompt();
        }
        /// <summary>
        /// method to add a firearm's info
        /// </summary>
        public static Firearm AddFirearm()
        {
            Firearm firearm = new Firearm();

            DisplayReset();

            DisplayMessage("");
            Console.WriteLine(ConsoleUtil.Center("Add A Firearm", WINDOW_WIDTH));
            DisplayMessage("");

            DisplayPromptMessage("Enter the firearm ID: ");
            firearm.ID = ConsoleUtil.ValidateIntegerResponse("Please enter the firearm ID: ", Console.ReadLine());
            Console.WriteLine("");

            DisplayPromptMessage("Enter the firearm name: ");
            firearm.Name = Console.ReadLine();
            Console.WriteLine("");

            DisplayPromptMessage("Enter the manufacturer: ");
            firearm.Manufacturer = Console.ReadLine();
            Console.WriteLine("");

            DisplayPromptMessage("Enter the firearm type: ");
            firearm.FirearmType = Console.ReadLine();
            Console.WriteLine("");

            DisplayPromptMessage("Enter the caliber/guage: ");
            firearm.AmmoType = Console.ReadLine();
            Console.WriteLine("");

            DisplayPromptMessage("Enter the barrel length: ");
            firearm.BarrelLength = ConsoleUtil.ValidateIntegerResponse("Please enter the barrel length: ", Console.ReadLine());
            Console.WriteLine("");

            return(firearm);
        }
        public static AppEnum.MenuOptions GetUserMenuOption()
        {
            DisplayReset();

            AppEnum.MenuOptions userMenuOption = AppEnum.MenuOptions.None;

            string leftTab = ConsoleUtil.FillStringWithSpaces(DISPLAY_HORIZONTAL_MARGIN);

            DisplayMessage("");
            Console.WriteLine(ConsoleUtil.Center("Main Menu", WINDOW_WIDTH));
            DisplayMessage("");

            Console.WriteLine(
                leftTab + "1. Display All Firearms" + Environment.NewLine +
                leftTab + "2. Display Firearm Info" + Environment.NewLine +
                leftTab + "3. Add a Firearm" + Environment.NewLine +
                leftTab + "4. Delete a Firearm" + Environment.NewLine +
                leftTab + "5. Update a Firearm" + Environment.NewLine +
                leftTab + "6. Query By ID" + Environment.NewLine +
                leftTab + "E. Exit" + Environment.NewLine);

            Console.WriteLine("");
            Console.WriteLine(ConsoleUtil.Center("Enter a menu option.", WINDOW_WIDTH));
            ConsoleKeyInfo userResponse = Console.ReadKey(true);

            switch (userResponse.KeyChar)
            {
            case '1':
                userMenuOption = AppEnum.MenuOptions.ViewAllFirearms;
                break;

            case '2':
                userMenuOption = AppEnum.MenuOptions.DisplayFirearmInfo;
                break;

            case '3':
                userMenuOption = AppEnum.MenuOptions.AddFirearm;
                break;

            case '4':
                userMenuOption = AppEnum.MenuOptions.DeleteFirearm;
                break;

            case '5':
                userMenuOption = AppEnum.MenuOptions.UpdateFirearm;
                break;

            case '6':
                userMenuOption = AppEnum.MenuOptions.QueryBy;
                break;

            case 'e':
            case 'E':
                userMenuOption = AppEnum.MenuOptions.Quit;
                break;

            default:
                DisplayMessage("");
                DisplayMessage("");
                DisplayMessage("It appears you have selected an incorrect choice.");
                DisplayMessage("");
                DisplayMessage("Press any key to try again or the ESC key to exit.");

                userResponse = Console.ReadKey(true);
                if (userResponse.Key == ConsoleKey.Escape)
                {
                    userMenuOption = AppEnum.MenuOptions.Quit;
                }
                break;
            }
            return(userMenuOption);
        }
        public static Firearm UpdateFirearm(Firearm firearm)
        {
            string userResponse = "";

            DisplayReset();

            DisplayMessage("");
            Console.WriteLine(ConsoleUtil.Center("Edit A Firearm", WINDOW_WIDTH));
            DisplayMessage("");

            DisplayMessage(String.Format("Current Name: {0}", firearm.Name));
            DisplayPromptMessage("Enter a new name or just press Enter to keep the current name: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                firearm.Name = userResponse;
            }

            DisplayMessage("");

            DisplayMessage(String.Format("Current Manufacturer: {0}", firearm.Manufacturer));
            DisplayPromptMessage("Enter a new manufacturer or just press Enter to keep the current manufacturer: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                firearm.Manufacturer = userResponse;
            }

            DisplayMessage("");

            DisplayMessage(String.Format("Current Type: {0}", firearm.FirearmType));
            DisplayPromptMessage("Enter a new type or just press Enter to keep the current type: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                firearm.FirearmType = userResponse;
            }

            DisplayMessage("");

            DisplayMessage(String.Format("Current Caliber/Guage: {0}", firearm.AmmoType));
            DisplayPromptMessage("Enter a new caliber/guage or just press Enter to keep the current caliber/guage: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                firearm.AmmoType = userResponse;
            }

            DisplayMessage("");

            DisplayMessage(String.Format("Current Barrel Length in cm: {0}", firearm.BarrelLength));
            DisplayPromptMessage("Enter a new barrel length or just press Enter to keep the current barrel length: ");
            userResponse = Console.ReadLine();
            if (userResponse != "")
            {
                firearm.BarrelLength = ConsoleUtil.ValidateIntegerResponse("Please enter the barrel length in cm.", userResponse);
            }

            DisplayMessage("");

            DisplayContinuePrompt();

            return(firearm);
        }