// opens file at path passed in, processes file, then closes file when done. public bool ImportCSV(string pathToCSVFile, WineItemCollections wineItemCollection) { StreamReader streamReader = null; try { string line; streamReader = new StreamReader(pathToCSVFile); while ((line = streamReader.ReadLine()) != null) { ProcessLine(line, wineItemCollection); } return true; } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.WriteLine(ex.StackTrace); return false; } finally { if (streamReader != null) { streamReader.Close(); } } }
// processes file - splits line at commas into 3-element array, each element is then // passed to wineItem and then added to wineItemCollection array. public void ProcessLine(string line, WineItemCollections wineItemCollection) { string[] fileArray = line.Split(','); WineItem wineItem = new WineItem(fileArray[0], fileArray[1], fileArray[2]); wineItemCollection.AddWineItem(wineItem); }
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(); } }