public void Run()
        {
            BadgeRepository badgeRepo = new BadgeRepository();

            Badge badge1 = new Badge(10000, new List <string>()
            {
                "A1", "A2", "B1"
            });
            Badge badge2 = new Badge(20000, new List <string>()
            {
                "A1", "A2"
            });
            Badge badge3 = new Badge(30000, new List <string>()
            {
                "B1", "B2"
            });


            badgeRepo.AddBadge(badge1);
            badgeRepo.AddBadge(badge2);
            badgeRepo.AddBadge(badge3);

            bool isOver = false;

            while (!isOver)
            {
                Console.Clear();
                Console.WriteLine("Hello and welcome to Komodo Insurance Badge System!");
                Console.WriteLine("");
                Console.WriteLine("Please select an option: ");
                Console.WriteLine("1: Add a badge.");
                Console.WriteLine("2: Edit a badge.");
                Console.WriteLine("3: List all badges.");
                Console.WriteLine("4: Exit.");


                string answer = Console.ReadLine();

                switch (answer)
                {
                //Add a badge
                case "1":
                {
                    Console.Clear();
                    Console.WriteLine("You have chosen to add a badge.");
                    Console.WriteLine("Enter the badge ID number to add: ");
                    string idAnswer   = Console.ReadLine();
                    int    idToInt    = Int32.Parse(idAnswer);
                    Badge  badgeToAdd = new Badge(idToInt);

                    bool doorsAdded = false;

                    while (!doorsAdded)
                    {
                        Console.WriteLine("List a door this badge needs access to: ");
                        string doorToAdd = Console.ReadLine();
                        badgeToAdd.AddDoorToBadge(doorToAdd);

                        Console.WriteLine("Any other doors to add? (y/n): ");
                        string moreDoors = Console.ReadLine();
                        if (moreDoors == "n")
                        {
                            doorsAdded = true;
                        }
                        else
                        {
                            doorsAdded = false;
                        }
                    }

                    badgeRepo.AddBadge(badgeToAdd);

                    break;
                }

                //Edit a badge
                case "2":
                {
                    Console.Clear();

                    Console.WriteLine("You have chosen to edit a current badge.");
                    Console.WriteLine("Enter the badge ID number: ");

                    string idAnswer    = Console.ReadLine();
                    int    idToInt     = Int32.Parse(idAnswer);
                    Badge  badgeToEdit = badgeRepo.FindBadgeByNumber(idToInt);

                    if (badgeToEdit != null)
                    {
                        bool goBack = false;

                        while (!goBack)
                        {
                            Console.Clear();
                            badgeRepo.ReadBadge(badgeToEdit);
                            Console.WriteLine("What would you like to do?: ");
                            Console.WriteLine("1. Remove a door");
                            Console.WriteLine("2. Add a door");
                            Console.WriteLine("3. Return to main menu");

                            string doorChoice = Console.ReadLine();

                            switch (doorChoice)
                            {
                            //Remove door from badge
                            case "1":
                            {
                                Console.WriteLine("Enter the door to remove: ");
                                string doorToRemove = Console.ReadLine();
                                if (badgeToEdit.ReturnDoorList().Contains(doorToRemove))
                                {
                                    badgeRepo.RemoveDoorFromBadge(badgeToEdit, doorToRemove);
                                }
                                else
                                {
                                    Console.WriteLine("No such door found.");
                                }

                                Console.WriteLine("Press any key to continue...");
                                Console.ReadLine();

                                break;
                            }

                            //add door to badge
                            case "2":
                            {
                                Console.WriteLine("Enter the door to add: ");
                                string doorToAdd = Console.ReadLine();
                                badgeToEdit.AddDoorToBadge(doorToAdd);

                                Console.WriteLine("Press any key to continue...");
                                Console.ReadLine();

                                break;
                            }

                            //return to menu
                            case "3":
                            {
                                goBack = true;
                                break;
                            }

                            default: break;
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("No such badge found!");
                    }

                    break;
                }

                //List All badges
                case "3":
                {
                    badgeRepo.ReadAllBadges();
                    break;
                }

                case "4":
                {
                    isOver = true;
                    break;
                }

                default:
                {
                    break;
                }
                }

                Console.WriteLine("Press any key to continue...");
                Console.ReadLine();
            }
        }
 public void RemoveAllFromBadge(Badge badge)
 {
     badge.RemoveAllDoorsFromBadge();
 }
 public void RemoveDoorFromBadge(Badge badge, string door)
 {
     badge.RemoveDoorFromBadge(door);
 }
 public void AddDoorToBadge(Badge badge, string door)
 {
     badge.AddDoorToBadge(door);
 }
 public void RemoveBadge(Badge badge)
 {
     badgeRepository.Remove(badge);
 }
 public void AddBadge(Badge badge)
 {
     badgeRepository.Add(badge);
 }