/// <inheritdoc /> protected override void PersistNewItem(IAuditEntry entity) { entity.AddingEntity(); AuditEntryDto dto = AuditEntryFactory.BuildDto(entity); Database.Insert(dto); entity.Id = dto.Id; entity.ResetDirtyProperties(); }
/// <inheritdoc /> protected override IAuditEntry?PerformGet(int id) { Sql <ISqlContext> sql = Sql() .Select <AuditEntryDto>() .From <AuditEntryDto>() .Where <AuditEntryDto>(x => x.Id == id); AuditEntryDto dto = Database.FirstOrDefault <AuditEntryDto>(sql); return(dto == null ? null : AuditEntryFactory.BuildEntity(dto)); }
/// <summary> /// 创建审计 /// </summary> /// <param name="entityEntry"></param> /// <returns></returns> private AuditEntryDto CreateAuditEntity(EntityEntry entityEntry) { var entity = entityEntry.Entity; var type = entity.GetType(); var displayName = type.ToDescription(); //得到实体上特性 DataOperationType changeType = DataOperationType.Add; switch (entityEntry.State) { //case EntityState.Detached: // changeType = DataOperationType.None; // break; //case EntityState.Unchanged: // changeType = DataOperationType.None; // break; case EntityState.Deleted: changeType = DataOperationType.Delete; break; case EntityState.Modified: changeType = DataOperationType.Update; break; case EntityState.Added: changeType = DataOperationType.Add; break; } AuditEntryDto audit = new AuditEntryDto(); audit.KeyValues = new Dictionary <string, object>(); audit.EntityName = type.FullName; audit.DisplayName = displayName; audit.TypeName = type.FullName; audit.OperationType = changeType; audit.AuditPropertys = GetAuditPropertys(entityEntry); audit.KeyValues = new Dictionary <string, object>() { { "Id", GetEntityKey(entity) } }; return(audit); }
public static IAuditEntry BuildEntity(AuditEntryDto dto) { var entity = new AuditEntry { Id = dto.Id, PerformingUserId = dto.PerformingUserId, PerformingDetails = dto.PerformingDetails, PerformingIp = dto.PerformingIp, EventDateUtc = dto.EventDateUtc, AffectedUserId = dto.AffectedUserId, AffectedDetails = dto.AffectedDetails, EventType = dto.EventType, EventDetails = dto.EventDetails, }; // on initial construction we don't want to have dirty properties tracked // http://issues.umbraco.org/issue/U4-1946 entity.ResetDirtyProperties(false); return(entity); }