示例#1
0
        public void OnPostUpdate(PostUpdateEvent evt)
        {
            String entityName = evt.Persister.EntityName;

            if (verCfg.EntCfg.IsVersioned(entityName))
            {
                AuditSync verSync = verCfg.AuditSyncManager.get(evt.Session);

                IAuditWorkUnit workUnit = new ModWorkUnit(evt.Session, evt.Persister.EntityName, verCfg,
                                                          evt.Id, evt.Persister, evt.State, evt.OldState);
                verSync.AddWorkUnit(workUnit);

                if (workUnit.ContainsWork())
                {
                    GenerateBidirectionalCollectionChangeWorkUnits(verSync, evt.Persister, entityName, evt.State,
                                                                   evt.OldState, evt.Session);
                }
                //Simon - TODO - same as above
                //verSync.BeforeCompletion();
            }
        }
示例#2
0
        public virtual void OnPostUpdate(PostUpdateEvent evt)
        {
            var entityName = evt.Persister.EntityName;

            if (!VerCfg.EntCfg.IsVersioned(entityName))
            {
                return;
            }
            checkIfTransactionInProgress(evt.Session);

            var verSync    = VerCfg.AuditProcessManager.Get(evt.Session);
            var newDbState = postUpdateDbState(evt);
            var workUnit   = new ModWorkUnit(evt.Session, evt.Persister.EntityName, VerCfg,
                                             evt.Id, evt.Persister, newDbState, evt.OldState);

            verSync.AddWorkUnit(workUnit);
            if (workUnit.ContainsWork())
            {
                generateBidirectionalCollectionChangeWorkUnits(verSync, evt.Persister, entityName, newDbState,
                                                               evt.OldState, evt.Session);
            }
        }