protected WorkUnit(AbstractPostDatabaseOperationEvent @event, VersionedClass versionedClass)
 {
     Session        = @event.Session;
     Entity         = @event.Entity;
     Id             = @event.Id;
     Persister      = @event.Persister;
     VersionedClass = versionedClass;
     Key            = new Tuple <string, object>(VersionedClass.VersionedEntityName, Id);
 }
        private VersionedClass GetVersionedClass(AbstractPostDatabaseOperationEvent @event)
        {
            if (_versionedClasses.TryGetValue(@event.Persister.EntityName, out var vc))
            {
                return(vc);
            }

            return(null);
        }
Esempio n. 3
0
        internal string GetAuditNoteForEntity(AbstractPostDatabaseOperationEvent @event, IEnumerable <int> propertyIndexesToAudit, IEntityAuditStrategy entityAuditStrategy)
        {
            var noteBulder = new StringBuilder();

            var persister = @event.Persister as AbstractEntityPersister;

            foreach (int propertyIndexToAudit in propertyIndexesToAudit)
            {
                var propertyType = @event.Persister.PropertyTypes[propertyIndexToAudit];
                if (propertyType is CollectionType)
                {
                    continue;
                }

                var    componentType = propertyType as ComponentType;
                string note;

                if (componentType != null)
                {
                    note = entityAuditStrategy.GetAuditNoteForComponentProperty(persister, componentType, propertyIndexToAudit);
                }
                else
                {
                    string propertyName = @event.Persister.PropertyNames[propertyIndexToAudit];

                    if ((@event.Entity is IEntity && EntityPropertyList.Contains(propertyName)) ||
                        (@event.Entity is IAuditable && AuditablePropertyList.Contains(propertyName)))
                    {
                        continue;
                    }

                    string columnName = string.Join(",", persister.GetPropertyColumnNames(propertyName));

                    note = entityAuditStrategy.GetAuditNoteForNonComponentProperty(columnName, propertyIndexToAudit);
                }

                if (!string.IsNullOrWhiteSpace(note))
                {
                    noteBulder.AppendLine(note);
                }
            }

            string noteResult = noteBulder.ToString().Trim();

            return(noteResult);
        }