public void ItemListToText(List <Item> items) { StreamWriter writer = new StreamWriter("../../../ItemsInventory.txt"); // looks at the libraryList declared aaaaaallllll the way at the top, and iterates through them. // properties like CheckedIn or DueDate will be modified in the CheckIn/CheckOut method, and this method will write those changes ontop of the old .txt file // In other words: Run this method only AFTER the user has made changes for (int i = 0; i < libraryList.Count; i++) { //book if (items[i] is Book) { //unboxing magic Item item = items[i]; Book book = (Book)item; writer.WriteLine($"{book.MediaType}|{book.Title}|{book.Author}|{book.Description}|{book.CheckedIn}|{book.DueDate}|{book.NumberOfPages}"); } //CD else if (items[i] is CD) { Item item = items[i]; CD cd = (CD)item; writer.WriteLine($"{cd.MediaType}|{cd.Title}|{cd.Author}|{cd.Description}|{cd.CheckedIn}|{cd.DueDate}|{cd.Length}"); } //magazine else if (items[i] is Magazine) { Item item = items[i]; Magazine mag = (Magazine)item; writer.WriteLine($"{mag.MediaType}|{mag.Title}|{mag.Author}|{mag.Description}|{mag.CheckedIn}|{mag.DueDate}|{mag.NumberOfPages}"); } //movie else if (items[i] is Movie) { Item item = items[i]; Movie movie = (Movie)item; writer.WriteLine($"{movie.MediaType}|{movie.Title}|{movie.Author}|{movie.Description}|{movie.CheckedIn}|{movie.DueDate}|{movie.Duration}"); } //ADD OTHER IF ELSE FOR MOVIES,CDs, ETC. } writer.Close(); }
private void ListItems() //will need a 'List<Item> libraryList' parameter { int i = 1; Console.Clear(); foreach (Item item in libraryList) { //go back and format this or, inside of the Item (or children) class, setup a DisplayItem(); method if (item is Book && !item.CheckedIn) { Book b = (Book)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n NUMBER OF PAGES: {b.NumberOfPages}\n DESCRIPTION: {item.Description}"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($" DUE DATE: {item.DueDate}"); Console.ResetColor(); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } else if (item is Book && item.CheckedIn) { Book b = (Book)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n NUMBER OF PAGES: {b.NumberOfPages}"); Console.WriteLine($" Description: {item.Description}"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($" Available for CheckOut"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } if (item is Magazine && !item.CheckedIn) { Magazine b = (Magazine)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n NUMBER OF PAGES: {b.NumberOfPages}\n DESCRIPTION: {item.Description}"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($" DUE DATE: {item.DueDate}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } else if (item is Magazine && item.CheckedIn) { Magazine b = (Magazine)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n NUMBER OF PAGES: {b.NumberOfPages}"); Console.WriteLine($" Description: {item.Description}"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($" Available for CheckOut"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } if (item is CD && !item.CheckedIn) { CD b = (CD)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n CD Length: {b.Length}\n DESCRIPTION: {item.Description}"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($" DUE DATE: {item.DueDate}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } else if (item is CD && item.CheckedIn) { CD b = (CD)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n CD Length: {b.Length}"); Console.WriteLine($" Description: {item.Description}"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($" Available for CheckOut"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } if (item is Movie && !item.CheckedIn) { Movie b = (Movie)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n Movie Length: {b.Duration}\n DESCRIPTION: {item.Description}"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($" DUE DATE: {item.DueDate}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } else if (item is Movie && item.CheckedIn) { Movie b = (Movie)item; Console.ForegroundColor = ConsoleColor.Cyan; Console.WriteLine($"{i} - TITLE: {item.Title}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine($" AUTHOR: {item.Author}\n Movie Length: {b.Duration}"); Console.WriteLine($" Description: {item.Description}"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($" Available for CheckOut"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================================================================================================="); } i++; } UserContinue(); }