Beispiel #1
0
        public static void Main(string[] args)
        {
            List <Person>  people   = new List <Person>();
            List <Product> products = new List <Product>();

            string[] input = Console.ReadLine().Split(";");

            for (int i = 0; i < input.Length; i++)
            {
                string[] tempPersont = input[i].Split("=");

                string  name  = tempPersont[0];
                decimal money = decimal.Parse(tempPersont[1]);

                try
                {
                    Person person = new Person(name, money);
                    people.Add(person);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Environment.Exit(0);
                }
            }

            input = Console.ReadLine().Split(";");

            for (int i = 0; i < input.Length; i++)
            {
                string[] tempProduct = input[i].Split("=");

                string  nameOfProduct = tempProduct[0];
                decimal price         = decimal.Parse(tempProduct[1]);

                try
                {
                    Product product = new Product(nameOfProduct, price);
                    products.Add(product);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Environment.Exit(0);
                }
            }


            input = Console.ReadLine().Split(" ");

            while (input[0] != "END")
            {
                string personName  = input[0];
                string productName = input[1];

                Person  person       = people.FirstOrDefault(x => x.Name == personName);
                Product productToBuy = products.FirstOrDefault(x => x.Name == productName);

                if (person.Money >= productToBuy.Cost)
                {
                    person.BuyProduct(productToBuy);
                    person.Money -= productToBuy.Cost;

                    Console.WriteLine($"{person.Name} bought {productToBuy.Name}");
                }
                else
                {
                    Console.WriteLine($"{person.Name} can't afford {productToBuy.Name}");
                }

                input = Console.ReadLine().Split();
            }

            foreach (var person in people)
            {
                if (person.Products().Count > 0)
                {
                    Console.WriteLine($"{person.Name} - {string.Join(", ", person.Products().Select(x => x.Name))}");
                }
                else
                {
                    Console.WriteLine($"{person.Name} - Nothing bought");
                }
            }
        }