/*IOrderService Interface*/ public int CreateOrder(OrderIT.Model.Order order) { using (var ctx = new OrderIT.Model.OrderITEntities()) { ctx.Orders.AddObject(order); ctx.SaveChanges(); return(order.OrderId); } }
public void DeleteOrder(int orderId, byte[] version) { using (var ctx = new OrderIT.Model.OrderITEntities()) { var order = new OrderIT.Model.Order { OrderId = orderId, Version = version }; ctx.Orders.Attach(order); ctx.Orders.DeleteObject(order); ctx.SaveChanges(); } }
public void UpdateOrder(OrderIT.Model.Order order) { using (var ctx = new OrderIT.Model.OrderITEntities()) { ctx.ContextOptions.ProxyCreationEnabled = false; order.OrderDetails.ForEach(d => d.OrderId = order.OrderId); var dbOrder = ctx.Orders.Include("OrderDetails").First(o => o.OrderId == order.OrderId); var AddedDetails = order.OrderDetails.Except(dbOrder.OrderDetails).ToList(); var RemovedDetails = dbOrder.OrderDetails.Except(order.OrderDetails).ToList(); var ModifiedDetails = dbOrder.OrderDetails.Intersect(order.OrderDetails).ToList(); dbOrder.ShippingAddress = order.ShippingAddress; dbOrder.Version = order.Version; AddedDetails.ForEach(d => dbOrder.OrderDetails.Add(d)); RemovedDetails.ForEach(d => ctx.OrderDetails.DeleteObject(d)); ModifiedDetails.ForEach(d => ctx.OrderDetails.ApplyCurrentValues(d)); ctx.SaveChanges(); } }