// ----- Internal logics
 private static void SaveUncommitedEvents(Order order)
 {
     var domainEvents = order.GetUncommittedEvents();
     var persistedEvents = domainEvents.Select(ConvertToPersistentEvent);
     using (var dataContext = new DataContext()) {
         dataContext.Set<OrderEvent>().AddRange(persistedEvents);
         dataContext.SaveChanges();
     }
 }
 public void Delete(Guid orderId)
 {
     var @event = new OrderDeleted(orderId);
     var eventToPersist = ConvertToPersistentEvent(@event);
     using (var dataContext = new DataContext()) {
         dataContext.Set<OrderEvent>().Add(eventToPersist);
         dataContext.SaveChanges();
     }
 }