Example #1
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!");
                }
            }
        }
Example #2
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!");
                }
            }
        }
Example #3
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);
            }
        }
Example #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);
            }
        }
Example #5
0
        static void Main(string[] args)
        {
            OrderService service = new OrderService();

            //有两个Order的订单号相同,应该只有一个成功加入
            //Order 4中有两个OrderItem相同,应该只有一个成功加入
            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 = "123456", Name = "Phone", Price = 3999.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 = "5", 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();

                //默认排序
                Console.WriteLine("-------------Default Sort----------");
                service.Sort();
                service.Print();

                //自定义排序
                Console.WriteLine("-------------Customized Sort-------");
                service.Sort((o1, o2) => { return((int)(o1.Total - o2.Total)); });
                service.Print();


                //删除Order 5 订单
                Console.WriteLine("-------------Delete Order 5--------");
                service.DeleteOrder("5");
                service.Print();


                //更新Order 4 订单
                Console.WriteLine("-------------Update Order 4--------");
                Order updateOrder = secondOrder;
                secondOrder.Items[0].Count = 10;
                service.UpdateOrder("4", updateOrder);
                service.Print();

                //查询订单号为2的订单
                Console.WriteLine("-------------Select Order 2--------");
                IEnumerable <Order> result1 = service.SelectOrder("OrderCode", "2");
                foreach (Order e in result1)
                {
                    Console.WriteLine(e);
                }

                //查询商品名为Pen的订单
                Console.WriteLine("-------------Select Pen------------");
                IEnumerable <Order> result2 = service.SelectOrder("CommodityName", "Pen");
                foreach (Order e in result2)
                {
                    Console.WriteLine(e);
                }


                //查询客户名为Amy的订单
                Console.WriteLine("-------------Select Amy------------");
                IEnumerable <Order> result3 = service.SelectOrder("CustomerName", "Amy");
                foreach (Order e in result3)
                {
                    Console.WriteLine(e);
                }
            }
            catch (Exception e)
            {
                //显示错误信息
                Console.WriteLine(e.Message);
            }
        }