Exemple #1
0
        public static void Main()
        {
            try
            {
                Customer customer1 = new Customer(1, "Customer1");
                Customer customer2 = new Customer(2, "Customer2");

                Goods milk     = new Goods(1, "Milk", 69.9);
                Goods eggs     = new Goods(2, "eggs", 4.99);
                Goods apple    = new Goods(3, "apple", 5.59);
                Goods computer = new Goods(4, "computer", 1599.9);

                OrderDetail orderDetails1   = new OrderDetail(1, apple, 8);
                OrderDetail orderDetails1_2 = new OrderDetail(1, apple, 8);
                //检验contains方法能否检查非引用的相同对象

                OrderDetail orderDetails2 = new OrderDetail(2, eggs, 2);
                OrderDetail orderDetails3 = new OrderDetail(3, milk, 1);

                OrderDetail orderDetails4 = new OrderDetail(4, computer, 2);
                OrderDetail orderDetails5 = new OrderDetail(5, apple, 6);
                OrderDetail orderDetails6 = new OrderDetail(6, apple, 1);
                /*用于排序的实例*/
                Order order1 = new Order(1, customer1);
                Order order2 = new Order(2, customer2);
                Order order3 = new Order(3, customer2);
                Order order4 = new Order(4, customer1);
                Order order5 = new Order(5, customer2);
                Order order6 = new Order(6, customer1);



                order1.AddDetails(orderDetails1);

                /*测试contain方法可检测的类型*/

                Console.WriteLine("try to add orderdetail again");

                try
                {
                    order1.AddDetails(orderDetails1);
                }catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                Console.WriteLine("try to add a orderdetail that has the same value to orderdetail1");

                try
                {
                    order1.AddDetails(orderDetails1_2);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                //使用contains方法能够检查出并非相同引用的相同对象,因为重写了equal方法



                order1.AddDetails(orderDetails2);
                order1.AddDetails(orderDetails3);

                //order1.AddOrderDetails(orderDetails3);

                order2.AddDetails(orderDetails2);
                order2.AddDetails(orderDetails3);
                order3.AddDetails(orderDetails3);

                order4.AddDetails(orderDetails5);
                order4.AddDetails(orderDetails2);

                order5.AddDetails(orderDetails4);
                order5.AddDetails(orderDetails5);

                order6.AddDetails(orderDetails6);

                OrderService os = new OrderService();
                os.AddOrder(order1);
                os.AddOrder(order5);
                os.AddOrder(order2);
                os.AddOrder(order4);
                os.AddOrder(order3);
                os.AddOrder(order6);


                Console.WriteLine("GetAllOrdersWithoutSorting");
                List <Order> orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }
                Console.WriteLine("\n\n\nSortingByOrderId");
                os.sort();
                orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }

                Console.WriteLine("\n\n\nSortingByTotalMoney");
                os.sortmoney();
                orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }

            Console.ReadLine();
        }
Exemple #2
0
        public static void Main()
        {
            try
            {
                Customer customer1 = new Customer(1, "Customer1");
                Customer customer2 = new Customer(2, "Customer2");

                Goods milk     = new Goods(1, "Milk", 69.9);
                Goods eggs     = new Goods(2, "eggs", 4.99);
                Goods apple    = new Goods(3, "apple", 5.59);
                Goods computer = new Goods(4, "computer", 1599.9);

                OrderDetail orderDetails1   = new OrderDetail(1, apple, 8);
                OrderDetail orderDetails1_2 = new OrderDetail(1, apple, 8);
                //检验contains方法能否检查非引用的相同对象

                OrderDetail orderDetails2 = new OrderDetail(2, eggs, 2);
                OrderDetail orderDetails3 = new OrderDetail(3, milk, 1);

                OrderDetail orderDetails4 = new OrderDetail(4, computer, 2);
                OrderDetail orderDetails5 = new OrderDetail(5, apple, 6);
                OrderDetail orderDetails6 = new OrderDetail(6, apple, 1);
                /*用于排序的实例*/
                Order order1 = new Order(1, customer1);
                Order order2 = new Order(2, customer2);
                Order order3 = new Order(3, customer2);
                Order order4 = new Order(4, customer1);
                Order order5 = new Order(5, customer2);
                Order order6 = new Order(6, customer1);


                order1.AddDetails(orderDetails1);

                /*测试contain方法可检测的类型*/

                Console.WriteLine("try to add orderdetail again");

                try
                {
                    order1.AddDetails(orderDetails1);
                }catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                Console.WriteLine("try to add a orderdetail that has the same value to orderdetail1");

                try
                {
                    order1.AddDetails(orderDetails1_2);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                //使用contains方法能够检查出并非相同引用的相同对象,因为重写了equal方法



                order1.AddDetails(orderDetails2);
                order1.AddDetails(orderDetails3);

                //order1.AddOrderDetails(orderDetails3);

                order2.AddDetails(orderDetails2);
                order2.AddDetails(orderDetails3);
                order3.AddDetails(orderDetails3);

                order4.AddDetails(orderDetails5);
                order4.AddDetails(orderDetails2);

                order5.AddDetails(orderDetails4);
                order5.AddDetails(orderDetails5);

                order6.AddDetails(orderDetails6);

                OrderService os = new OrderService();
                os.AddOrder(order1);
                os.AddOrder(order5);
                os.AddOrder(order2);
                os.AddOrder(order4);
                os.AddOrder(order3);
                os.AddOrder(order6);


                Console.WriteLine("GetAllOrdersWithoutSorting");
                List <Order> orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }
                Console.WriteLine("\n\n\nSortingByOrderId");
                os.sort();
                orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }

                Console.WriteLine("\n\n\nSortingByTotalMoney");
                os.sortmoney();
                orders = os.QueryAllOrders();
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }

                //-------------------------------------------


                Console.WriteLine("\n\nGetOrdersByCustomerName:'Customer2'");
                orders = os.QueryByCustomerName("Customer2");
                foreach (Order order in orders)
                {
                    Console.WriteLine(order.ToString());
                }

                Console.WriteLine("GetOrdersByGoodsName:'apple'");
                orders = os.QueryByGoodsName("apple");
                foreach (Order order in orders)
                {
                    Console.WriteLine(order);
                }

                Console.WriteLine("\n\n\nGetOrderById=2");
                Order o = os.GetById(2);
                Console.WriteLine(o);

                Console.WriteLine("\n\n\nRemove order(id=2) and qurey all");
                os.RemoveOrder(2);
                os.QueryAllOrders().ForEach(
                    od => Console.WriteLine(od));

                os.Export();                                                    //将原始数据保存到orderlist.temp中
            } catch (Exception e) {
                Console.WriteLine(e.Message);
            }
            try
            {
                OrderService os2 = new OrderService();
                os2.import();                                                   //从orderlist.temp中读取数据
                Console.WriteLine("\n\n\nShow the imported imformation\n");
                List <Order> orderlist2 = os2.QueryAllOrders();
                foreach (Order o in orderlist2)
                {
                    Console.WriteLine(o);
                }
            }
            catch (Exception e2)
            {
                Console.WriteLine(e2.Message);
            }
            Console.ReadLine();
        }