public void Execute(string[] persons, string[] products) { try { List <Person> listPerson = new List <Person>(); List <Product> productsInput = new List <Product>(); ProcessPersonInput(listPerson, persons); ProcessProductsInput(productsInput, products); while (true) { string command = Console.ReadLine(); if (command == "END") { break; } string[] parts = command.Split(); string name = parts[0]; string product = parts[1]; Person currentPerson = Person.GetCurrentPerson(name, listPerson); Product currentProduct = Person.GetCurrentProduct(product, productsInput); if (Person.Buy(currentPerson, currentProduct)) { Console.WriteLine($"{name} bought {product}"); } else { Console.WriteLine($"{name} can't afford {product}"); } } foreach (var person in listPerson) { if (person.Products.Count == 0) { Console.WriteLine($"{person.Name} - Nothing bought "); } else { var allProducts = person.Products; Console.Write($"{person.Name} - "); int index = 0; foreach (var item in allProducts) { if (index == allProducts.Count - 1) { Console.Write($"{item.Name}"); } else { Console.Write($"{item.Name}, "); } index++; } Console.WriteLine(); } } } catch (Exception exception) { Console.WriteLine(exception.Message); } }