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;
        }
示例#2
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);
        }