Esempio n. 1
0
        static void Main(string[] args)
        {
            //测试数据——订单明细
            OrderItem itemOne   = new OrderItem("铅笔", 5, 1);
            OrderItem itemTwo   = new OrderItem("钢笔", 10, 50);
            OrderItem itemThree = new OrderItem("圆珠笔", 20, 2);
            OrderItem itemFour  = new OrderItem("橡皮擦", 20, 2);
            OrderItem itemFive  = new OrderItem("篮球", 200, 10);
            OrderItem itemSix   = new OrderItem("足球", 300, 5);

            //测试数据——订单
            Order order1 = new Order("文具", "hhx", 600);

            Thread.Sleep(1000);
            Order order2 = new Order("运动器材", "Tom", 5000);

            Thread.Sleep(1000);
            Order order3 = new Order("其他", "hhx", 3000);

            //添加明细
            Console.WriteLine("添加订单明细:");
            order1.AddItems(itemOne);
            order1.AddItems(itemTwo);
            order1.AddItems(itemThree);
            order2.AddItems(itemSix);
            order2.AddItems(itemFive);
            order3.AddItems(itemFive);
            order3.AddItems(itemOne);

            //添加订单
            Console.WriteLine("添加订单:");
            OrderService service = new OrderService();

            service.AddOrder(order1);
            service.AddOrder(order2);
            service.AddOrder(order1);

            //输出订单信息
            Console.WriteLine(service.ToString());

            //删除订单
            Console.WriteLine("删除order2:");
            service.DelOrder(order2.OrderNum);
            //service.DelOrder(2);              //订单号错误删除失败
            Console.WriteLine("当前订单状况:\n{0}", service.ToString());

            //修改订单,将order1修改为order3
            service.ChangeOrder(order1.OrderNum, order3);
            Console.WriteLine("当前订单状况:\n{0}", service.ToString());

            //查询订单,按照订单号
            service.AddOrder(order2);
            service.AddOrder(order1);
            var tmp = service.FindOrder(order1.OrderNum);

            service.SelfDefSort();
            if (tmp.Count != 0)
            {
                for (int n = 0; n < tmp.Count; n++)
                {
                    Console.WriteLine(tmp[n].ToString());
                }
            }
            //订单查询,按照商品名称和客户
            var tmp1 = service.FindOrder("铅笔");
            var tmp2 = service.FindOrder("Tom");

            foreach (Order o in tmp1)
            {
                Console.WriteLine("按照商品名:\n{0}", o.ToString());
            }
            foreach (Order o in tmp2)
            {
                Console.WriteLine("按照客户名:\n{0}", o.ToString());
            }

            //订单排序
            Console.WriteLine("未排序:\n{0}", service.ToString());
            service.DefSort();
            Console.WriteLine("默认排序:\n{0}", service.ToString());
            service.SelfDefSort();
            Console.WriteLine("lambda表达式自定义排序:\n{0}", service.ToString());

            service.Export();
            Console.WriteLine(File.ReadAllText("D:\\Order.xml"));

            List <Order> ts = service.Import();

            if (ts != null)
            {
                foreach (Order s in ts)
                {
                    Console.WriteLine(s.ToString());
                }
            }

            Console.Read();
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to Order Management System!");
            OrderService service = new OrderService();
            string       path    = @"orders.xml";

            service.Import(path);
            while (true)
            {
                try
                {
                    String orderID;
                    String customerName;
                    Console.WriteLine("\n");
                    String action = GetInput("1.add an order\t2.delete an order\t3.alter your order\t4.sort your orders\nPlease select an action: ");
                    switch (action)
                    {
                    case "1":
                        customerName = GetInput("Customer name:");
                        service.AddOrder(customerName, Int32.Parse(DateTime.Now.ToString("HHmmss")));
                        Console.WriteLine("Add an order successful!");
                        service.PrintOrders(service.orderList);
                        //Console.WriteLine("Your order ID is:" );
                        break;

                    case "2":
                        orderID = GetInput("Order ID:");
                        service.DeleteOrder(Int32.Parse(orderID));
                        Console.WriteLine("Delete the order successful!");
                        service.PrintOrders(service.orderList);

                        break;

                    case "3":
                        orderID = GetInput("Order ID:");
                        String operation = GetInput("add item\t" + "delete item\nPlease select an operation:");

                        switch (operation)
                        {
                        case "add item":
                            Console.WriteLine("Please enter item,amount and unitprice ,Separated by space");
                            string[] string1 = System.Text.RegularExpressions.Regex.Split(Console.ReadLine(), @"[ ]+");
                            string[] par3    = new string[3];
                            for (int i = 0; i < 3; i++)
                            {
                                par3[i] = string1[i];
                            }
                            service.AlterOrder(Int32.Parse(orderID), operation, par3);

                            service.PrintOrders(service.orderList);
                            break;

                        case "delete item":
                            Console.WriteLine("Please enter item and amount ,Separated by space");
                            string[] string2 = System.Text.RegularExpressions.Regex.Split(Console.ReadLine(), @"[ ]+");
                            string[] par2    = new string[2];
                            for (int i = 0; i < 2; i++)
                            {
                                par2[i] = (string2[i]);
                            }
                            service.AlterOrder(Int32.Parse(orderID), operation, par2);
                            service.PrintOrders(service.orderList);
                            break;

                        default:
                            throw new ArgumentException("Invalid input!");
                        }
                        break;

                    case "4":
                        Console.WriteLine("Please enter search conditions:");
                        customerName = GetInput("Customer name:");
                        orderID      = GetInput("Order ID:");
                        String goodsName = GetInput("Goods name:");
                        customerName = customerName == "" ? null : customerName;
                        orderID      = orderID == "" ? null : orderID;
                        goodsName    = goodsName == "" ? null : goodsName;
                        List <Order> results = service.SearchOrder(customerName, orderID, goodsName);
                        service.PrintOrders(results);
                        break;

                    default:
                        throw new ArgumentException("No such operation!");
                    }
                    service.Export(path);
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid input!");
                }
            }
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to Order Management System!");
            OrderService service = new OrderService();

            service.Import("orders.xml");
            service.OrderIDCounter = service.Orders != null && service.Orders.Count > 0
                ? service.Orders[service.Orders.Count - 1].OrderID : 0;
            while (true)
            {
                try
                {
                    String orderID;
                    String customerName;
                    String customerAddress;
                    String action = GetInput("1.add an order\t2.delete an order\t3.modify an order\t4.select the orders\nPlease select an action: ");
                    switch (action)
                    {
                    case "1":
                        customerName    = GetInput("Customer name:");
                        customerAddress = GetInput("Customer address:");
                        Console.WriteLine("Add an order successful!");
                        Console.WriteLine("Your order ID is:" + service.AddOrder(new Order(0,
                                                                                           new Customer(customerName, customerAddress), DateTime.Now, new List <OrderItem>())));
                        break;

                    case "2":
                        orderID = GetInput("Order ID:");
                        service.DeleteOrder(Int32.Parse(orderID));
                        Console.WriteLine("Delete the order successful!");
                        break;

                    case "3":
                        orderID = GetInput("Order ID:");
                        String operation = GetInput(
                            "customer name\tcustomer address\torder time\tadd item\n" +
                            "delete item\tquantity\nPlease select an operation:"
                            );
                        String modifyData = "";
                        if (operation != "add item")
                        {
                            modifyData = GetInput("The data After modify:");
                        }
                        object data    = null;
                        int    goodsID = 0;
                        switch (operation)
                        {
                        case "customer name":
                        case "customer address":
                            data = modifyData;
                            break;

                        case "order time":
                            data = DateTime.Parse(modifyData);
                            break;

                        case "add item":
                            goodsID = Int32.Parse(GetInput("Goods ID:"));
                            int quantity = Int32.Parse(GetInput("Quantity:"));
                            data = new OrderItem(new Goods(goodsID), quantity);
                            break;

                        case "delete item":
                            goodsID = Int32.Parse(GetInput("Goods ID:"));
                            break;

                        case "quantity":
                            goodsID = Int32.Parse(GetInput("Quantity:"));
                            data    = Int32.Parse(modifyData);
                            break;

                        default:
                            throw new ArgumentException("Invalid argument!");
                        }
                        service.AlterOrder(Int32.Parse(orderID), operation, data, goodsID);
                        Console.WriteLine("Modify successful!");
                        Console.Write(service.FindOrder(int.Parse(orderID), null, null)[0]);
                        break;

                    case "4":
                        Console.WriteLine("Please enter search conditions:");
                        orderID = GetInput("Order ID:");
                        String goodsName = GetInput("Goods name:");
                        customerName = GetInput("Customer name:");
                        int orderId = orderID == "" ? int.MinValue : int.Parse(orderID);
                        goodsName    = goodsName == "" ? null : goodsName;
                        customerName = customerName == "" ? null : customerName;
                        List <Order> results = service.FindOrder(orderId, goodsName, customerName);
                        Console.WriteLine("Result:");
                        foreach (Order order in results)
                        {
                            Console.WriteLine(order);
                        }
                        break;

                    default:
                        throw new ArgumentException("No such operation!");
                    }
                    service.Export("orders.xml");
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid input!");
                }
            }
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            OrderService os = new OrderService();

            //新建订单操作
            Order o1 = new Order(1, new OrderDetails("Coke", "Alan", 3));
            Order o2 = new Order(1, new OrderDetails("Coke", "Alan", 3));
            Order o3 = new Order(2, "Milk", "Betty", 20);
            Order o4 = new Order(3, "Fruit", "Chris", 30);
            Order o5 = new Order(4, "Beef", "Chris", 10);


            //添加订单操作
            Console.WriteLine("o1添加成功:" + os.AddOrder(o1));
            Console.WriteLine("o2添加成功:" + os.AddOrder(o2));//重复,返回false
            Console.WriteLine("o4添加成功:" + os.AddOrder(o4));
            Console.WriteLine("o3添加成功:" + os.AddOrder(o3));
            Console.WriteLine("o5添加成功:" + os.AddOrder(o5));
            Console.WriteLine("\n\n原始订单");

            foreach (Order o in os.orders)
            {
                //重写了ToString方法
                Console.WriteLine(o);
            }
            //按订单号对订单排序
            os.SortOrdersByOrderID();
            Console.WriteLine("\n\n按订单号排序后");
            //打印当前所有订单,已按订单号排序
            foreach (Order o in os.orders)
            {
                Console.WriteLine(o);
            }

            //删除订单
            Console.WriteLine("\n\no3删除成功:" + os.DeleteOrder(o3.orderID));
            Console.WriteLine("删除o3后");
            //打印当前所有订单,订单号2的订单已删除
            foreach (Order o in os.orders)
            {
                Console.WriteLine(o);
            }
            Console.WriteLine("\n\n修改o1后");
            //修改订单,将o1的cost改为100,productName改为wine
            os.ModifyOrder(o1.orderID, "Wine", o1.orderDetails.customerName, 100);
            //打印所有订单,此时o1的cost已经变为100,productName已经变为Wine
            foreach (Order o in os.orders)
            {
                Console.WriteLine(o);
            }
            Console.WriteLine("\n\n按姓名查找,且按金额递增排序");
            //按照顾客姓名查找,也可以按照订单号查找,并且返回按照订单金额排序的结果
            var ordersByChris = os.QueryByCustomerName("Chris");

            //打印查找结果
            foreach (Order o in ordersByChris)
            {
                Console.WriteLine(o);
            }

            os.Export("s.xml");
            Console.WriteLine("Exported.");

            os.Import("s.xml");
            Console.WriteLine("Imported.");
            foreach (Order o in os.orders)
            {
                Console.WriteLine(o);
            }
        }
Esempio n. 5
0
        public static void Main(string[] args)
        {
            OrderService service = new OrderService();

            while (true)
            {
                Console.WriteLine("请选择功能:1.添加订单;2.删除订单;3.查找订单;4.修改订单;5.序列化;6.反序列化;7.退出系统");
                string choice = Console.ReadLine();
                switch (choice)
                {
                case "1":
                    List <OrderItem> orderItems = new List <OrderItem>();
                    while (true)
                    {
                        Console.WriteLine("请输入商品名称:");
                        string ItemName = Console.ReadLine();
                        Console.WriteLine("请输入商品数量:");
                        int ItemNumber = Int32.Parse(Console.ReadLine());
                        Console.WriteLine("请输入商品单价:");
                        int ItemPrice = Int32.Parse(Console.ReadLine());
                        Console.WriteLine("请输入客户名:");
                        string ConsumerName = Console.ReadLine();
                        Console.WriteLine("继续购物?:y/n");
                        string flag = Console.ReadLine();
                        if (flag == "y")
                        {
                            orderItems.Add(new OrderItem(ItemPrice, ItemName, ItemNumber));
                        }
                        else
                        {
                            orderItems.Add(new OrderItem(ItemPrice, ItemName, ItemNumber));
                            service.addOrder(ConsumerName, orderItems);
                            break;
                        }
                    }
                    break;

                case "2":
                    while (true)
                    {
                        Console.WriteLine("请输入订单号!");
                        int ID = Int32.Parse(Console.ReadLine());
                        service.deleteOrder(ID);
                        Console.WriteLine("是否继续删除:y/n");
                        string flag = Console.ReadLine();
                        if (flag == "y")
                        {
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                    break;

                case "3":
                    while (true)
                    {
                        Console.WriteLine("请输入查找模式:1.按订单号查找;2.按商品名查找;3.按客户名查找");
                        string mod = Console.ReadLine();
                        if (mod == "1")
                        {
                            Console.WriteLine("请输入订单号!");
                            int ID = Int32.Parse(Console.ReadLine());
                            Console.WriteLine(service.searchByOrderID(ID));
                        }
                        else if (mod == "2")
                        {
                            Console.WriteLine("请输入商品名!");
                            string name = Console.ReadLine();
                            Console.WriteLine(service.searchByItemName(name));
                        }
                        else if (mod == "3")
                        {
                            Console.WriteLine("请输入客户名!");
                            string name = Console.ReadLine();
                            Console.WriteLine(service.searchByConsumer(name));

                            Console.WriteLine("是否继续查找:y/n");
                            string flag = Console.ReadLine();
                            if (flag == "y")
                            {
                                continue;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    break;

                case "4":
                    while (true)
                    {
                        Console.WriteLine("请输入订单号!");
                        int preOrderId = Int32.Parse(Console.ReadLine());
                        Console.WriteLine("请输入修改后的订单号!");
                        int OrderID = Int32.Parse(Console.ReadLine());
                        service.setOrderID(preOrderId, OrderID);
                        Console.WriteLine("是否继续修改:y/n");
                        string flag = Console.ReadLine();
                        if (flag == "y")
                        {
                            continue;
                        }
                        else
                        {
                            break;
                        }
                    }
                    break;

                case "5":
                    service.Export();
                    break;

                case "6":
                    service.Import("Order.xml");
                    break;

                case "7":
                    break;

                default:
                    Console.WriteLine("无效输入");
                    break;
                }
            }
        }
Esempio n. 6
0
        static void Main(string[] args)
        {
            OrderService service = new OrderService();

            Order firstOrder = new Order()
            {
                OrderCode = "5", Customer = new Customer {
                    Name = "Mike", Phone = "13845691234", Address = "Wuhan"
                }, Items = new List <OrderItem>()
                {
                    new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123456", Name = "Phone", Price = 3999.0F
                        }, Count = 2
                    }, new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123457", Name = "Pen", Price = 9.0F
                        }, Count = 30
                    }
                }
            };
            Order secondOrder = new Order()
            {
                OrderCode = "4", Customer = new Customer {
                    Name = "Amy", Phone = "13845123457", Address = "Beijing"
                }, Items = new List <OrderItem>()
                {
                    new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123456", Name = "Phone", Price = 3999.0F
                        }, Count = 1
                    }, new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123457", Name = "Pen", Price = 9.0F
                        }, Count = 1
                    }
                }
            };
            Order thirdtOrder = new Order()
            {
                OrderCode = "3", Customer = new Customer {
                    Name = "John", Phone = "13845123466", Address = "Shanghai"
                }, Items = new List <OrderItem>()
                {
                    new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123456", Name = "Phone", Price = 3999.0F
                        }, Count = 3
                    }, new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123457", Name = "Pen", Price = 9.0F
                        }, Count = 3
                    }
                }
            };
            Order fourthOrder = new Order()
            {
                OrderCode = "2", Customer = new Customer {
                    Name = "Amy", Phone = "13845123356", Address = "Wuhan"
                }, Items = new List <OrderItem>()
                {
                    new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123456", Name = "Phone", Price = 3999.0F
                        }, Count = 4
                    }, new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123457", Name = "Pen", Price = 9.0F
                        }, Count = 6
                    }
                }
            };
            Order fifthOrder = new Order()
            {
                OrderCode = "1", Customer = new Customer {
                    Name = "Bob", Phone = "13845123156", Address = "Guangzhou"
                }, Items = new List <OrderItem>()
                {
                    new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123456", Name = "Phone", Price = 3999.0F
                        }, Count = 5
                    }, new OrderItem()
                    {
                        Commodity = new Commodity()
                        {
                            Code = "123457", Name = "Pen", Price = 9.0F
                        }, Count = 10
                    }
                }
            };

            try
            {
                //添加订单
                Console.WriteLine("-------------Add Order-------------");
                service.AddOrder(firstOrder);
                service.AddOrder(secondOrder);
                service.AddOrder(thirdtOrder);
                service.AddOrder(fourthOrder);
                service.AddOrder(fifthOrder);
                service.Print();

                //输出订单到XML文件
                Console.WriteLine("-------------Export Orders----------");
                service.Export(@"E:\order.xml");
                Console.WriteLine("Successfully Exported.\n");

                //删除所有订单
                Console.WriteLine("-------------Delete All Orders------");
                service.DeleteOrder("1");
                service.DeleteOrder("2");
                service.DeleteOrder("3");
                service.DeleteOrder("4");
                service.DeleteOrder("5");
                Console.WriteLine("Successfully Deleted.\n");
                service.Print();

                //从XML文件导入订单
                Console.WriteLine("-------------Import Orders----------");
                service.Import(@"E:\order.xml");
                Console.WriteLine("Successfully Imported.\n");
                service.Print();
            }
            catch (Exception e)
            {
                //显示错误信息
                Console.WriteLine(e.Message);
            }
        }