Click or drag to resize

AuditAuditScriptTemplate Field


Namespace: Seal.Model
Assembly: SealLibrary (in SealLibrary.dll) Version: 8.3.0.0+c4d725cbae26375217e6c77c92a07fffaea6377d
Syntax
C#
public const string AuditScriptTemplate = "@using System.Data\r\n@using System.Data.Common\r\n@using System.Data.OleDb\r\n@using System.Data.Odbc\r\n\r\n@{\r\n    Audit audit = Model;\r\n    var auditSource = Repository.Instance.Sources.FirstOrDefault(i => i.Name.StartsWith("Audit"));  \r\n    if (auditSource != null) {\r\n        var helper = new TaskDatabaseHelper();\r\n        var connection = auditSource.Connection.GetOpenConnection();\r\n        try {\r\n            var command = helper.GetDbCommand(connection);\r\n\r\n            //Create audit table if necessary\r\n            checkTableCreation(command);\r\n            command.CommandText = @"insert into sr_audit(event_date,event_type,event_path,event_detail,event_error,user_name,user_groups,user_session,execution_name,execution_context,execution_view,execution_duration,output_type,output_name,output_information,schedule_name)";\r\n            if (command is OleDbCommand || command is OdbcCommand) {\r\n                command.CommandText += " values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";\r\n            }\r\n            else {\r\n                command.CommandText += " values(@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9,@p10,@p11,@p12,@p13,@p14,@p15,@p16)";\r\n            }\r\n        \r\n            var date = DateTime.Now;\r\n            date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second);\r\n            int index=1;\r\n            addParameter(command, index++, DbType.DateTime, date); //event_date,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Type.ToString()); //event_type,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Path); //event_path,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Detail); //event_detail,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Error); //event_error,\r\n            addParameter(command, index++, DbType.AnsiString, audit.User != null ? audit.User.Name : null); //user_name,\r\n            addParameter(command, index++, DbType.AnsiString, audit.User != null ? audit.User.SecurityGroupsDisplay : null); //user_groups,\r\n            addParameter(command, index++, DbType.AnsiString, audit.User != null ? audit.User.SessionID : null); //user_session,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null ? audit.Report.ExecutionName : null); //execution_name,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null ? audit.Report.ExecutionContext.ToString() : null); //execution_context,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null ? audit.Report.ExecutionView.Name : null); //execution_view,\r\n            addParameter(command, index++, DbType.Int32, audit.Report != null ? Convert.ToInt32(audit.Report.ExecutionFullDuration.TotalSeconds) : (object) DBNull.Value); //execution_duration,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null && audit.Report.OutputToExecute != null ? audit.Report.OutputToExecute.DeviceName : null); //output_type,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null && audit.Report.OutputToExecute != null ? audit.Report.OutputToExecute.Name : null);//output_name,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Report != null && audit.Report.OutputToExecute != null ? audit.Report.OutputToExecute.Information : null);//output_information,\r\n            addParameter(command, index++, DbType.AnsiString, audit.Schedule != null ? audit.Schedule.Name : null);//schedule_name\r\n            command.ExecuteNonQuery();\r\n        }\r\n        finally {\r\n            connection.Close();\r\n        }\r\n    }\r\n\r\n}\r\n\r\n@functions {\r\n    void checkTableCreation(DbCommand command)\r\n    {\r\n        if (Audit.CheckTableCreation)\r\n        {\r\n            //Check table creation\r\n            Audit.CheckTableCreation = false;\r\n            try\r\n            {\r\n                command.CommandText = "select 1 from sr_audit where 1=0";\r\n                command.ExecuteNonQuery();\r\n            }\r\n            catch\r\n            {\r\n                //Create the table (to be adapted for your database type, e.g. ident identity(1,1), execution_error varchar(max) for SQLServer)\r\n                command.CommandText = @"create table sr_audit (\r\n                        event_date datetime,event_type varchar(255),event_path varchar(255),event_detail varchar(255),event_error varchar(255),user_name varchar(255),user_groups varchar(255),user_session varchar(255),execution_name varchar(255),execution_context varchar(255),execution_view varchar(255),execution_status varchar(255),execution_duration int null,execution_locale varchar(255),execution_error varchar(255),output_type varchar(255),output_name varchar(255),output_information varchar(255),schedule_name varchar(255)\r\n                    )";\r\n                command.ExecuteNonQuery();\r\n            }\r\n        }\r\n    }\r\n\r\n    void addParameter(DbCommand command, int index, DbType type, Object value)\r\n    {\r\n        var parameter = command.CreateParameter();\r\n        parameter.ParameterName = "@p" + index.ToString();\r\n        parameter.DbType = type;\r\n        if (value == null) value = (object) DBNull.Value;\r\n\r\n        if (value is string && ((string)value).Length >= 255) parameter.Value = ((string)value).Substring(0, 254);\r\n        else parameter.Value = value;\r\n        command.Parameters.Add(parameter);\r\n    }\r\n}\r\n"

Field Value

String
See Also