protected virtual void FinalizeAuditTable( IExtendedDialect dialect) { if (!isFinalized) { var auditColumns = auditColumnSource.GetAuditColumns(auditTable, dialect); AddAuditColumns(auditTable, auditColumns); auditColumnSource = null; isFinalized = true; } }
public override string SqlCreateString(Dialect dialect, IMapping p, string defaultCatalog, string defaultSchema) { IExtendedDialect eDialect = (IExtendedDialect)dialect; var buf = new StringBuilder(); buf.AppendLine(eDialect.GetCreateTriggerHeaderString( _triggerName, _tableName, _action)); buf.AppendLine(SqlTriggerBody(dialect, p, defaultCatalog, defaultSchema)); buf.AppendLine(eDialect.GetCreateTriggerFooterString( _triggerName, _tableName, _action)); return(buf.ToString()); }
internal Table GetTable(IExtendedDialect dialect) { FinalizeAuditTable(dialect); return auditTable; }
public IEnumerable<AuditColumn> GetAuditColumns( Table auditTable, IExtendedDialect dialect) { var auditColumns = new List<AuditColumn>(); var baseDialect = (Dialect)dialect; var hasUserFunction = baseDialect.Functions.ContainsKey( CurrentUserFunctionName); var hasTimestampFunction = baseDialect.Functions.ContainsKey( CurrentTimestampFunctionName); if (hasUserFunction) auditColumns.Add(new AuditColumn() { Name = "AuditUser", Value = new SimpleValue() { TypeName = NHibernateUtil.AnsiString.Name }, Length = 256, IsNullable = false, IncludeInPrimaryKey = true, ValueFunction = delegate(TriggerActions action) { var funcName = CurrentUserFunctionName; return baseDialect.Functions[funcName] .Render(new ArrayList(), null).ToString(); } }); if (hasTimestampFunction) auditColumns.Add(new AuditColumn() { Name = "AuditTimestamp", Value = new SimpleValue() { TypeName = NHibernateUtil.DateTime.Name }, IsNullable = false, IncludeInPrimaryKey = true, ValueFunction = delegate(TriggerActions action) { var funcName = CurrentTimestampFunctionName; return baseDialect.Functions[funcName] .Render(new ArrayList(), null).ToString(); } }); auditColumns.Add(new AuditColumn() { Name = "AuditOperation", Value = new SimpleValue() { TypeName = NHibernateUtil.AnsiString.Name }, Length = 6, IsNullable = false, IncludeInPrimaryKey = false, ValueFunction = delegate(TriggerActions action) { switch (action) { case TriggerActions.INSERT: return "'INSERT'"; case TriggerActions.UPDATE: return "'UPDATE'"; case TriggerActions.DELETE: return "'DELETE'"; default: throw new ArgumentOutOfRangeException("action"); } } }); return auditColumns; }
public IEnumerable <AuditColumn> GetAuditColumns( Table auditTable, IExtendedDialect dialect) { var auditColumns = new List <AuditColumn>(); var baseDialect = (Dialect)dialect; var hasUserFunction = baseDialect.Functions.ContainsKey( CurrentUserFunctionName); var hasTimestampFunction = baseDialect.Functions.ContainsKey( CurrentTimestampFunctionName); if (hasUserFunction) { auditColumns.Add(new AuditColumn() { Name = "AuditUser", Value = new SimpleValue() { TypeName = NHibernateUtil.AnsiString.Name }, Length = 256, IsNullable = false, IncludeInPrimaryKey = true, ValueFunction = delegate(TriggerActions action) { var funcName = CurrentUserFunctionName; return(baseDialect.Functions[funcName] .Render(new ArrayList(), null).ToString()); } }); } if (hasTimestampFunction) { auditColumns.Add(new AuditColumn() { Name = "AuditTimestamp", Value = new SimpleValue() { TypeName = NHibernateUtil.DateTime.Name }, IsNullable = false, IncludeInPrimaryKey = true, ValueFunction = delegate(TriggerActions action) { var funcName = CurrentTimestampFunctionName; return(baseDialect.Functions[funcName] .Render(new ArrayList(), null).ToString()); } }); } auditColumns.Add(new AuditColumn() { Name = "AuditOperation", Value = new SimpleValue() { TypeName = NHibernateUtil.AnsiString.Name }, Length = 6, IsNullable = false, IncludeInPrimaryKey = false, ValueFunction = delegate(TriggerActions action) { switch (action) { case TriggerActions.INSERT: return("'INSERT'"); case TriggerActions.UPDATE: return("'UPDATE'"); case TriggerActions.DELETE: return("'DELETE'"); default: throw new ArgumentOutOfRangeException("action"); } } }); return(auditColumns); }
internal Table GetTable(IExtendedDialect dialect) { FinalizeAuditTable(dialect); return(auditTable); }