Exemplo n.º 1
0
        private static void Main()
        {
            try
            {
                //// Create a customer object.
                var p1 = new[] { new Purchase(3342), new Purchase(5648), new Purchase(7577) };
                var customer1 = new Customer("Oleg", 1111, p1);

                WriteJson(customer1);


                //// Change a property by creating a new object. 
                ////customer1.CustomerNumber = 555;
                ////customer1 = new Customer(customer1.Name, 555, customer1.Purchases);


                //// Use With pattern.
                customer1 = customer1
                    .WithCustomerNumber(555);

                WriteJson(customer1);


                //// Modify a immutable list.
                var customer2 = customer1
                    .WithPurchases(customer1.Purchases.Add(new Purchase(9000)));

                WriteJson(customer2);


                //// Replace an item inside a immutable list.
                var p3 = customer2.Purchases[3];
                var customer3 = customer2
                    .WithPurchases(customer2.Purchases.Replace(p3, p3.WithPurchaseId(9999)));

                WriteJson(customer3);


                // Violate requirement at object creation.
                var customer4 = new Customer(null, -2, null);
            }
            catch (ObjectRequirementException ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                Console.ReadKey();
            }
        }