Exemplo n.º 1
0
 public void update(string[] args)
 {
     if (args.Length < 4 || args.Length % 2 == 1)
     {
         throw new ArgumentException("Wrong argument(s)!");
     }
     try
     {
         int id = Int32.Parse(args[0]);
         using (var db = new OrderDB())
         {
             Order oldOrder = db.orders.Include("details").SingleOrDefault(o => o.orderId == id);
             if (oldOrder == null)
             {
                 throw new ArgumentException("Order not found!");
             }
             else
             {
                 List <OrderDetail> newDetails = new List <OrderDetail>();;
                 for (int i = 2; i < args.Length; i += 2)
                 {
                     newDetails.Add(new OrderDetail(id, args[i], Int32.Parse(args[i + 1])));
                 }
                 oldOrder.details.AddRange(newDetails);
                 for (int i = 0; i < oldOrder.details.Count; i++)
                 {
                     if (newDetails.Contains(oldOrder.details[i]))
                     {
                         db.Entry(oldOrder.details[i]).State = EntityState.Added;
                     }
                     else
                     {
                         db.Entry(oldOrder.details[i]).State = EntityState.Deleted;
                     }
                 }
                 db.SaveChanges();
                 oldOrder.clientName      = args[1];
                 db.Entry(oldOrder).State = EntityState.Modified;
                 db.SaveChanges();
             }
         }
         Console.WriteLine("Update succeed!");
     }
     catch (FormatException e)
     {
         throw new ArgumentException("Wrong argument(s)!", e);
     }
 }
Exemplo n.º 2
0
 public void add(string[] args)
 {
     if (args.Length < 3 || args.Length % 2 == 0)
     {
         throw new ArgumentException("Wrong argument(s)!");
     }
     try
     {
         List <Order> orders   = getAllOrders();
         Order        newOrder = new Order(args[0]);
         for (int i = 1; i < args.Length; i += 2)
         {
             newOrder.details.Add(new OrderDetail(newOrder.orderId, args[i], Int32.Parse(args[i + 1])));
         }
         using (var db = new OrderDB())
         {
             db.Entry(newOrder).State = EntityState.Added;
             db.SaveChanges();
         }
         Console.WriteLine("Add succeed!");
     }
     catch (FormatException e)
     {
         throw new ArgumentException("Wrong argument(s)!", e);
     }
 }