Пример #1
0
 protected virtual void FinalizeAuditTable(
   IExtendedDialect dialect)
 {
   if (!isFinalized)
   {
     var auditColumns =
       auditColumnSource.GetAuditColumns(auditTable, dialect);
     AddAuditColumns(auditTable, auditColumns);
     auditColumnSource = null;
     isFinalized = true;
   }
 }
Пример #2
0
 protected virtual void FinalizeAuditTable(
     IExtendedDialect dialect)
 {
     if (!isFinalized)
     {
         var auditColumns =
             auditColumnSource.GetAuditColumns(auditTable, dialect);
         AddAuditColumns(auditTable, auditColumns);
         auditColumnSource = null;
         isFinalized       = true;
     }
 }
Пример #3
0
        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());
        }
Пример #4
0
 internal Table GetTable(IExtendedDialect dialect)
 {
     FinalizeAuditTable(dialect);
       return auditTable;
 }
Пример #5
0
    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;
    }
Пример #6
0
        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);
        }
Пример #7
0
 internal Table GetTable(IExtendedDialect dialect)
 {
     FinalizeAuditTable(dialect);
     return(auditTable);
 }