public void Build(AuditEntry parent, string relationName, string propertyName, object oldValue, DbUpdatableDataRecord dbUpdatableDataRecord, int dbUpdatableDataRecordPosition) { InternalPropertyName = propertyName; if (!IsValueSet) { DbUpdatableDataRecord = dbUpdatableDataRecord; DbUpdatableDataRecordPosition = dbUpdatableDataRecordPosition; OldValue = oldValue; } if (Parent == null) { Parent = parent; } if (PropertyName == null) { PropertyName = parent.Parent.CurrentOrDefaultConfiguration.PropertyNameFactory != null? parent.Parent.CurrentOrDefaultConfiguration.PropertyNameFactory(ObjectContext.GetObjectType(parent.Entry.Entity.GetType()), propertyName) : propertyName; } if (RelationName == null) { RelationName = relationName; } }
/// <summary> /// Initializes a new instance of the <see cref="DbDataRecordPropertyValues" /> class. /// </summary> /// <param name="internalContext"> The internal context. </param> /// <param name="type"> The type. </param> /// <param name="dataRecord"> The data record. </param> /// <param name="isEntity"> /// If set to <c>true</c> this is a dictionary for an entity, otherwise it is a dictionary for a complex object. /// </param> internal DbDataRecordPropertyValues( InternalContext internalContext, Type type, DbUpdatableDataRecord dataRecord, bool isEntity) : base(internalContext, type, isEntity) { DebugCheck.NotNull(dataRecord); _dataRecord = dataRecord; }
public DbDataRecordPropertyValuesItem( DbUpdatableDataRecord dataRecord, int ordinal, object value) { this._dataRecord = dataRecord; this._ordinal = ordinal; this._value = value; }
internal DbDataRecordPropertyValues( InternalContext internalContext, Type type, DbUpdatableDataRecord dataRecord, bool isEntity) : base(internalContext, type, isEntity) { this._dataRecord = dataRecord; }
protected override IPropertyValuesItem GetItemImpl(string propertyName) { int ordinal = this._dataRecord.GetOrdinal(propertyName); object obj = this._dataRecord[ordinal]; DbUpdatableDataRecord dataRecord = obj as DbUpdatableDataRecord; if (dataRecord != null) { obj = (object)new DbDataRecordPropertyValues(this.InternalContext, this._dataRecord.GetFieldType(ordinal), dataRecord, false); } else if (obj == DBNull.Value) { obj = (object)null; } return((IPropertyValuesItem) new DbDataRecordPropertyValuesItem(this._dataRecord, ordinal, obj)); }
/// <summary>Audit entity added.</summary> /// <param name="auditEntry">The audit entry.</param> /// <param name="record">The record.</param> /// <param name="prefix">The prefix.</param> public static void AuditEntityAdded(AuditEntry auditEntry, DbUpdatableDataRecord record, string prefix = "") { for (var i = 0; i < record.FieldCount; i++) { var name = record.GetName(i); var value = record.GetValue(i); var valueRecord = value as DbUpdatableDataRecord; if (valueRecord != null) { // Complex Type AuditEntityAdded(auditEntry, valueRecord, string.Concat(prefix, name, ".")); } else if (auditEntry.Parent.CurrentOrDefaultConfiguration.IsAuditedProperty(auditEntry.Entry, name)) { auditEntry.Properties.Add(new AuditEntryProperty(auditEntry, string.Concat(prefix, name), null, value)); } } }
public static void AuditEntityAdded(AuditEntry entry, DbUpdatableDataRecord record, string prefix = "") { for (var i = 0; i < record.FieldCount; i++) { var name = record.GetName(i); var value = record.GetValue(i); var valueRecord = value as DbUpdatableDataRecord; if (valueRecord != null) { // Complex Type AuditEntityAdded(entry, valueRecord, string.Concat(prefix, name, ".")); } else { entry.Properties.Add(new AuditEntryProperty(string.Concat(prefix, name), null, value)); } } }
public static void AuditEntityAdded(AuditEntry entry, DbUpdatableDataRecord record, string prefix = "") { for (var i = 0; i < record.FieldCount; i++) { var name = record.GetName(i); var value = record.GetValue(i); var valueRecord = value as DbUpdatableDataRecord; if (valueRecord != null) { // Complex Type AuditEntityAdded(entry, valueRecord, string.Concat(prefix, name, ".")); } else { entry.Properties.Add(new AuditEntryProperty(string.Concat(prefix, name), null, value)); } } }
/// <summary>Audit entity added.</summary> /// <param name="auditEntry">The audit entry.</param> /// <param name="record">The record.</param> /// <param name="prefix">The prefix.</param> public static void AuditEntityAdded(AuditEntry auditEntry, DbUpdatableDataRecord record, string prefix = "") { for (var i = 0; i < record.FieldCount; i++) { var name = record.GetName(i); var value = record.GetValue(i); var valueRecord = value as DbUpdatableDataRecord; if (valueRecord != null) { // Complex Type AuditEntityAdded(auditEntry, valueRecord, string.Concat(prefix, name, ".")); } else if (auditEntry.Parent.CurrentOrDefaultConfiguration.IsAuditedProperty(auditEntry.Entry, name)) { auditEntry.Properties.Add(new AuditEntryProperty(auditEntry, string.Concat(prefix, name), null, value)); } } }
public static void AuditEntityModified(Audit audit, AuditEntry entry, DbDataRecord orginalRecord, DbUpdatableDataRecord currentRecord, string prefix = "") { for (var i = 0; i < orginalRecord.FieldCount; i++) { var name = orginalRecord.GetName(i); var originalValue = orginalRecord.GetValue(i); var currentValue = currentRecord.GetValue(i); var valueRecord = originalValue as DbDataRecord; if (valueRecord != null) { // Complex Type AuditEntityModified(audit, entry, valueRecord, currentValue as DbUpdatableDataRecord, string.Concat(prefix, name, ".")); } else { if (audit.Configuration.IncludePropertyUnchanged || !Equals(currentValue, originalValue)) { entry.Properties.Add(new AuditEntryProperty(string.Concat(prefix, name), originalValue, currentValue)); } } } }
/// <summary>Audit entity added.</summary> /// <param name="auditEntry">The audit entry.</param> /// <param name="objectStateEntry">The object state entry.</param> /// <param name="record">The record.</param> /// <param name="prefix">The prefix.</param> public static void AuditEntityAdded(AuditEntry auditEntry, ObjectStateEntry objectStateEntry, DbUpdatableDataRecord record, string prefix = "") { for (var i = 0; i < record.FieldCount; i++) { var name = record.GetName(i); var value = record.GetValue(i); var type = record.GetFieldType(i); if (auditEntry.Parent.Configuration.UseNullForDBNullValue && value == DBNull.Value) { value = null; } var valueRecord = value as DbUpdatableDataRecord; if (valueRecord != null) { // Complex Type AuditEntityAdded(auditEntry, objectStateEntry, valueRecord, string.Concat(prefix, name, ".")); } else if (objectStateEntry.EntitySet.ElementType.KeyMembers.Any(x => x.Name == name) || auditEntry.Parent.CurrentOrDefaultConfiguration.IsAuditedProperty(auditEntry.Entry, string.Concat(prefix, name))) { var auditEntryProperty = auditEntry.Parent.Configuration.AuditEntryPropertyFactory != null? auditEntry.Parent.Configuration.AuditEntryPropertyFactory(new AuditEntryPropertyArgs(auditEntry, objectStateEntry, string.Concat(prefix, name), null, value)) : new AuditEntryProperty(); if (auditEntry.Parent.CurrentOrDefaultConfiguration.IgnoreEntityAddedDefaultValue && type != typeof(object) && value != null) { var checkDefaultValue = DefaultValue(type); if (checkDefaultValue != null && checkDefaultValue.Equals(value)) { value = null; } } auditEntryProperty.Build(auditEntry, string.Concat(prefix, name), null, value); auditEntry.Properties.Add(auditEntryProperty); } } }
public static void AuditEntityModified(Audit audit, AuditEntry entry, DbDataRecord orginalRecord, DbUpdatableDataRecord currentRecord, string prefix = "") { for (var i = 0; i < orginalRecord.FieldCount; i++) { var name = orginalRecord.GetName(i); var originalValue = orginalRecord.GetValue(i); var currentValue = currentRecord.GetValue(i); var valueRecord = originalValue as DbDataRecord; if (valueRecord != null) { // Complex Type AuditEntityModified(audit, entry, valueRecord, currentValue as DbUpdatableDataRecord, string.Concat(prefix, name, ".")); } else { if (audit.Configuration.IncludePropertyUnchanged || !Equals(currentValue, originalValue)) { entry.Properties.Add(new AuditEntryProperty(string.Concat(prefix, name), originalValue, currentValue)); } } } }
/// <summary>Audit entity modified.</summary> /// <param name="audit">The audit to use to add changes made to the context.</param> /// <param name="entry">The entry.</param> /// <param name="objectStateEntry">The object state entry.</param> /// <param name="orginalRecord">The orginal record.</param> /// <param name="currentRecord">The current record.</param> /// <param name="prefix">The prefix.</param> public static void AuditEntityModified(Audit audit, AuditEntry entry, ObjectStateEntry objectStateEntry, DbDataRecord orginalRecord, DbUpdatableDataRecord currentRecord, string prefix = "") { for (var i = 0; i < orginalRecord.FieldCount; i++) { var name = orginalRecord.GetName(i); var originalValue = orginalRecord.GetValue(i); var currentValue = currentRecord.GetValue(i); var valueRecord = originalValue as DbDataRecord; if (valueRecord != null) { // Complex Type AuditEntityModified(audit, entry, objectStateEntry, valueRecord, currentValue as DbUpdatableDataRecord, string.Concat(prefix, name, ".")); } else if (objectStateEntry.EntityKey.EntityKeyValues.Any(x => x.Key == name) || entry.Parent.CurrentOrDefaultConfiguration.IsAuditedProperty(entry.Entry, name)) { if (!audit.Configuration.IgnorePropertyUnchanged || objectStateEntry.EntityKey.EntityKeyValues.Any(x => x.Key == name) || !Equals(currentValue, originalValue)) { var auditEntryProperty = entry.Parent.Configuration.AuditEntryPropertyFactory != null? entry.Parent.Configuration.AuditEntryPropertyFactory(new AuditEntryPropertyArgs(entry, objectStateEntry, string.Concat(prefix, name), originalValue, currentValue)) : new AuditEntryProperty(); auditEntryProperty.Build(entry, string.Concat(prefix, name), originalValue, currentValue); entry.Properties.Add(auditEntryProperty); } } } }
public void Build(AuditEntry parent, string propertyName, object oldValue, DbUpdatableDataRecord dbUpdatableDataRecord, int dbUpdatableDataRecordPosition) { Build(parent, null, propertyName, oldValue, dbUpdatableDataRecord, dbUpdatableDataRecordPosition); }