public void RunAuction(Database database) { Auction auction = new Auction(database); if (auction.EligibleItems.Count > 0) { Console.WriteLine(); auction.DisplayEligibleItems(); Console.WriteLine(); Console.WriteLine("Start an auction? Y/N\n"); IsAuctionRunning = Validator.YesNoValidator(Console.ReadLine()); if (IsAuctionRunning) { Console.Clear(); Console.WriteLine(); auction.StartDate = DateTime.Now; Console.WriteLine("Auction has started on " + auction.StartDate); Console.WriteLine(); bool shouldContinue = true; while (IsAuctionRunning && shouldContinue) { if (auction.EligibleItems.Count > 0 && IsAuctionRunning) { Item itemToAuction = auction.EligibleItems.FirstOrDefault(); shouldContinue = AuctionItem(itemToAuction, auction.EligibleClients, auction, database); } else { auction.EndDate = DateTime.Now; Console.WriteLine("\nAuction has ended on " + auction.EndDate + " and it lasted " + (auction.EndDate - auction.StartDate)); Console.WriteLine("\nPress any key to continue"); Console.ReadKey(); shouldContinue = false; IsAuctionRunning = false; } } } } else { Console.WriteLine("\nNo eligible items left to auction.\nPress any key to continue..."); Console.ReadKey(); } }