Example #1
0
        public DataChangeSet SaveChanges(StaleDataPolicy staleDataPolicy)
        {
            var appliedEvents = new List<IAggregateEvent>();
            var staleData = new List<IAggregateRoot>();

            foreach (var changeSet in ChangeSets.Values)
            {
                if (ApplyChangeSet(changeSet, staleDataPolicy == StaleDataPolicy.Ignore))
                {
                    appliedEvents.AddRange(changeSet.GetStreamOfEvents());
                }
                else
                {
                    staleData.Add(changeSet.Aggregate);
                }
            }

            ChangeSets.Clear();

            return new DataChangeSet(appliedEvents, staleData);
        }
Example #2
0
 public IUnitOfWork Build(StaleDataPolicy staleDataPolicy)
 {
     return new UnitOfWorkContext(OpenDomainSession(), staleDataPolicy);
 }
Example #3
0
 public static IUnitOfWork Start(StaleDataPolicy? staleDataPolicy = null)
 {
     return Manager.Start(staleDataPolicy);
 }
Example #4
0
 public void OnStaleData(StaleDataPolicy policy)
 {
     StaleDataPolicy = policy;
 }