Ejemplo n.º 1
0
        private void ApplyChanges(IEnumerable <IEvent <TAuthenticationToken> > events, bool isEventReplay)
        {
            Lock.EnterWriteLock();
            IList <IEvent <TAuthenticationToken> > changes = new List <IEvent <TAuthenticationToken> >();

            try
            {
                try
                {
                    dynamic dynamicThis = this.AsDynamic();
                    foreach (IEvent <TAuthenticationToken> @event in events)
                    {
                        dynamicThis.Apply(@event);
                        if (!isEventReplay)
                        {
                            changes.Add(@event);
                        }
                        else
                        {
                            Id = @event.GetIdentity();
                            Version++;
                        }
                    }
                }
                finally
                {
                    Changes = new ReadOnlyCollection <IEvent <TAuthenticationToken> >(Changes.Concat(changes).ToList());
                }
            }
            finally
            {
                Lock.ExitWriteLock();
            }
        }
Ejemplo n.º 2
0
 private void ApplyChange(ISagaEvent <TAuthenticationToken> @event, bool isEventReplay)
 {
     Lock.EnterWriteLock();
     try
     {
         this.AsDynamic().Apply(@event.Event);
         if (!isEventReplay)
         {
             Changes = new ReadOnlyCollection <ISagaEvent <TAuthenticationToken> >(Changes.Concat(new[] { @event }).ToList());
         }
         else
         {
             Id = @event.Id;
             Version++;
         }
     }
     finally
     {
         Lock.ExitWriteLock();
     }
 }