public void Add(Order order) { var orderState = ((IStateSnapshotable<OrderState>) order).TakeSnapshot(); using (var dataContext = new DataContext()) { dataContext.Set<OrderState>().Add(orderState); dataContext.SaveChanges(); } }
public void Delete(Guid orderId) { using (var dataContext = new DataContext()) { var orderState = dataContext.Set<OrderState>().Find(orderId); dataContext.Entry(orderState).State = EntityState.Deleted; orderState.Lines.ForEach(x => dataContext.Entry(x).State = EntityState.Added); dataContext.SaveChanges(); } }
public Order Get(Guid id) { using (var dataContext = new DataContext()) { var orderState = dataContext .Set<OrderState>() .Include("Lines") .FirstOrDefault(x => x.Id == id); if (orderState == null) { return null; } var order = new Order(); ((IStateSnapshotable<OrderState>) order).LoadSnapshot(orderState); return order; } }