Пример #1
0
        static void Main(string[] args)
        {
            Console.WindowWidth  = 100;
            Console.WindowHeight = 30;

            var                System         = new string[4000, 3];     //Instantiates an empty 2d array named System
            UserInterface      ui             = new UserInterface();     //Creates the navigation menu
            CSVProcessorClass  csvProcess     = new CSVProcessorClass(); //Instantiates CSV processor class
            WineItemCollection wineCollection = new WineItemCollection();
            WineItem           searchWine     = new WineItem();


            int choice = ui.GetUserInput();

            while (choice != 5)
            {
                switch (choice)
                {
                case 1:         //Load array from CSV file
                    csvProcess.loadWineArray(System);

                    break;

                case 2:         //Search wine list

                    searchWine.searchWineList(System);
                    ui.DisplaySearchResults(searchWine.ToString());     //Demonstrate override method

                    break;

                case 3:         //Add new wine

                    wineCollection.addWineToArray(System);
                    break;

                case 4:         //Print entire list
                    //ui.printFullArray(System);
                    ui.PrintAllOutput(System);

                    break;

                case 5:
                    Environment.Exit(-1);    //Exits program
                    break;
                }
                choice = ui.GetUserInput();
            }
        }
        /* ADD WINE ITEM TO THE LIST */
        public void Add(WineItem wineItem)
        {
            // If this item won't fit in the array, throw an exception.
            // Example, if we're trying to fit a WineItem into position 12, but there's only 11 spaces in the wineItems array, throw an exception
            // (-1 on the wineItems.Length value since its maximum index is 1 less than its length)

            if (nextArrayPosition > (wineItems.Length - 1))     // Is the next array position more than the last index of the wineItems array?
            {
                // Make the list larger
                WineItem[] newWineItemList = new WineItem[(wineItems.Length + 1)];                  // Make a wineItemList the size of the old one, but one more larger.

                for (int index = 0; index < wineItems.Length; index++) {                            // Copy all of the wineItems into the new wineItems array
                    newWineItemList[index] = wineItems[index];
                }

                wineItems = newWineItemList;                                                        // Give the old wineItems array a new, bigger wineItemList
            }

            wineItems[nextArrayPosition] = wineItem;        // Add the given WineItem to the wineItems array
            nextArrayPosition++;                            // Increment the array so it's ready for the next time a WineItem is added
            Debug.WriteLine("WineItem added: " + wineItem.ToString());
        }
Пример #3
0
        public void SearchById(List <WineItem> wineList)
        {
            WineItem result = null;

            do
            {
                Console.WriteLine("Search Records:");
                Console.Write("Enter Id to search for:");

                userInputString = Console.ReadLine();

                result = wineList.Find(x => x.WINEID == userInputString);

                if (result == null)
                {
                    Console.WriteLine("Invalid Value");
                }
            } while (result == null);

            Console.WriteLine("ID        Name                                    Amount");
            Console.WriteLine("-----------------------------------------------------------------");
            Console.WriteLine(result.ToString());
        }
        /// <summary>
        /// For debugging/testing purposes. Bypasses UserInterface class and tests individual classes directly.
        /// </summary>
        private void Testing()
        {
            #region WineItemTest

            Console.WriteLine(Environment.NewLine + "******************************" + Environment.NewLine +
                "Test For WineItem functionality." + Environment.NewLine +
                "******************************" + Environment.NewLine);

            string ID1 = "12345";
            string ID2 = "67890";
            string aDesc1 = "aDesc";
            string aDesc2 = "OtherDesc";
            string aSize1 = "Size 1";
            string aSize2 = "Size 500";

            WineItem WineTest1 = new WineItem(ID1, aDesc1, aSize1);
            WineItem WineTest2 = new WineItem(ID2, aDesc2, aSize2);

            Console.WriteLine("TEST- ForcePrint:" + Environment.NewLine +
                WineTest1.WineID + " " + WineTest1.WineDescription + " " + WineTest1.WineSize + Environment.NewLine);

            Console.WriteLine("TEST- ToString():");
            Console.WriteLine(WineTest1.ToString());
            Console.WriteLine(WineTest2.ToString());

            Console.WriteLine(Environment.NewLine);

            #endregion

            #region WineItemCollectionTest

            Console.WriteLine(Environment.NewLine + "******************************" + Environment.NewLine +
                "Test For Collection functionality." + Environment.NewLine +
                "******************************" + Environment.NewLine);

            WineItemCollection collectionTest = new WineItemCollection(5);
            collectionTest.LoadWineItem(WineTest1, 0, 1);
            collectionTest.LoadWineItem(WineTest2, 1, 1);

            Console.WriteLine("TEST- Above items added to collection and displayed:");
            Console.WriteLine(collectionTest.GetCollectionToString());

            #endregion

            #region CSVProcessorTest

            Console.WriteLine(Environment.NewLine + "******************************"
             + Environment.NewLine + "Test For CSVProcessor functionality." + Environment.NewLine +
             "******************************" + Environment.NewLine);

            CSVProcessor loadThings = new CSVProcessor();

            int ArraySize = loadThings.LoadListSize;
            Console.WriteLine("TEST- # of Items loaded: " + Environment.NewLine + ArraySize + Environment.NewLine);

            WineItemCollection wineCollection = new WineItemCollection(ArraySize);
            loadThings = new CSVProcessor(wineCollection, 0);

            Console.WriteLine("TEST- Collection Contents After Load:");
            Console.WriteLine(wineCollection.GetCollectionToString());

            #endregion
        }
        /// <summary>
        /// Handles Menu option 3. Searching of Wine List.
        /// </summary>
        private void SearchWineList()
        {
            // Determines if there is a list to even search.
            if (wineItemCollection.WineItemArray[0] != null)
            {
                try
                {
                    mainMenu.DisplayLine("Enter ID to search for: ");
                    IDString = mainMenu.GetUserInput();

                    // Allows user to back out.
                    if (IDString.ToLower() != "esc")
                    {
                        wineItem = wineItemCollection.SearchWineItem(IDString, 0);
                        if (wineItem.WineDescription == "ID is Not Found")
                        {
                            mainMenu.DisplayLine("The entered ID (" + wineItem.WineID + ") is not found.");
                        }
                        else
                        {
                            mainMenu.DisplayLine("Match Found: " + wineItem.ToString());
                        }
                    }
                }
                catch
                {
                    mainMenu.DisplayLine("Error, invalid ID. Please enter 5 characters.");
                }
            }
            else
            {
                mainMenu.DisplayLine("There are no items to search. Please load a file or add items first.");
            }
        }
Пример #6
0
        static void Main(string[] args)
        {
            bool isLoadedCSV = false;
            UserInterface ui = new UserInterface();
            WineItem wineItem = new WineItem();
            WineItemCollections wineItemCollection = new WineItemCollections();
            CSVProcessor file = new CSVProcessor();


            int choice = ui.GetUserInput();

            while (choice != 5) // exits program if user selects 5, otherwise menu keeps displaying
            {
                switch (choice)
                {
                    case 1:
                        {
                            if (!isLoadedCSV) // loads file first time, afterward displays that it's already been loaded
                            {
                                file.ImportCSV("../../../datafiles/WineList.csv", wineItemCollection);
                                Console.WriteLine("File successfully loaded.");
                                Console.WriteLine();
                                isLoadedCSV = true;
                            }
                            else
                            {
                                Console.WriteLine("File has already been loaded.");
                                Console.WriteLine();
                            }
                            break;
                        }
                    case 2:
                        {
                            // displays all wine items
                            Console.WriteLine(wineItemCollection.ToString());
                            Console.WriteLine();
                            break;
                        }

                    case 3:
                        {
                            // allows user to search for wine by ID and displays wine info or that wine does not exist
                            Console.WriteLine("Enter the ID you wish to search for: ");
                            string searchWineItemID = Console.ReadLine();
                            WineItem wineItemResult = wineItemCollection.SearchWine(searchWineItemID);
                            if (wineItemResult != null)
                            {
                                Console.WriteLine(wineItemResult.ToString());
                            }
                            else
                            {
                                Console.WriteLine("The ID was not found in the database.");
                            }
                            Console.WriteLine();
                            break;
                        }

                    case 4:
                        {
                            // allows user to add wine item to array if the ID is not already in the database


                            Console.WriteLine("Please enter the wine ID: ");
                            string userID = Console.ReadLine();
                            WineItem wineItemResult = wineItemCollection.SearchWine(userID);
                            if (wineItemResult != null) 
                            {
                                Console.WriteLine("That ID is already in the database.");
                            }
                            else
                            {
                                Console.WriteLine("Please enter the wine description: ");
                                string userDescription = Console.ReadLine();

                                Console.WriteLine("Please enter the wine pack: ");
                                string userPack = Console.ReadLine();

                                WineItem userWineItem = new WineItem(userID, userDescription, userPack);
                                wineItemCollection.AddWineItem(userWineItem);

                                Console.WriteLine();
                                Console.WriteLine(userWineItem.ToString() + " successfully added.");
                                Console.WriteLine();
                            }

                            
                        }

                        break;
                }

                choice = ui.GetUserInput();
            }

            
        }