Exemplo n.º 1
0
        public void OnPostUpdate(PostUpdateEvent @event)
        {
            LogHelper.TraceIfEnabled <NhEventListeners>("OnPostUpdate for '{0}' with id '{1}'",
                                                        () => @event.Entity.GetType().Name, () => @event.Id);

            AggregateDataInterceptor.CheckNodeVersionId(@event.Entity, EnsureVersionIdsInitialised());
        }
Exemplo n.º 2
0
 /// <summary>
 /// Return true if the operation should be vetoed
 /// </summary>
 /// <param name="event"/>
 public bool OnPreDelete(PreDeleteEvent @event)
 {
     try
     {
         AggregateDataInterceptor.OnDeleteCheckAggregate(@event.Entity, @event.Session);
         return(false);
     }
     catch (Exception ex)
     {
         throw new InvalidOperationException("Error trying to flush aggregates during pre-delete phase: {0}".InvariantFormat(GetUsefulEntityName(@event.Entity, null, null)), ex);
     }
 }
Exemplo n.º 3
0
        public void OnPostInsert(PostInsertEvent @event)
        {
            LogHelper.TraceIfEnabled <NhEventListeners>("OnPostInsert for '{0}' with id '{1}'",
                                                        () => @event.Entity.GetType().Name, () => @event.Id);

            AggregateDataInterceptor.CheckNodeVersionId(@event.Entity, EnsureVersionIdsInitialised());

            var referenceByGuid = @event.Entity as IReferenceByGuid;

            if (referenceByGuid == null)
            {
                LogHelper.TraceIfEnabled <NhEventListeners>("Not raising event because casting entity to IReferenceByGuid resulted in null value");
                return;
            }

            //if (NodeIdAvailable != null) NodeIdAvailable(referenceByGuid, (Guid)@event.Id);
            OnNodeIdAvailable(referenceByGuid, (Guid)@event.Id);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Handle the given flush event.
 /// </summary>
 /// <param name="event">The flush event to be handled.</param>
 public void OnFlush(FlushEvent @event)
 {
     try
     {
         try
         {
             _defaultFlushListener.OnFlush(@event);
         }
         finally
         {
             AggregateDataInterceptor.UpdateAggregatesPostFlush(EnsureVersionIdsInitialised(), @event.Session);
         }
     }
     catch (Exception ex)
     {
         throw new InvalidOperationException("Error trying to flush", ex);
     }
 }
Exemplo n.º 5
0
 public void OnDelete(DeleteEvent @event, ISet transientEntities)
 {
     try
     {
         try
         {
             AggregateDataInterceptor.OnDeleteCheckAggregate(@event.Entity, @event.Session);
         }
         finally
         {
             _defaultDeleteListener.OnDelete(@event, transientEntities);
         }
     }
     catch (Exception ex)
     {
         throw new ApplicationException(string.Format("Error while trying to delete a {0} with id {1}", @event.EntityName, @event.Session.GetIdentifier(@event.Entity)), ex);
     }
 }