Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+

Audit Specific Operations

  • 3 minutes to read

You can instruct Audit Trail Module not to log particular operations. Handle the CustomizeAuditOperationTypeFilter event, check the current operation type, and set the SaveAuditOperation argument to false. The following example shows how to exclude the ObjectChanged and ObjectCreated records from the audit log.

In a Cross-Platform Module

File: MySolution.Module\MySolutionModule.cs (MySolutionModule.vb).

using DevExpress.Persistent.AuditTrail;
using static DevExpress.Persistent.AuditTrail.AuditTrailService;
// ...
public sealed partial class MySolutionModule : ModuleBase { 
    public override void Setup(XafApplication application) {
        base.Setup(application); 
        AuditTrailService.Instance.CustomizeAuditOperationTypeFilter += 
            new EventHandler<CustomAuditOperationTypeFilterEventArgs>(Instance_CustomizeAuditOperationTypeFilter);  
        //...  
    }  
    private static void Instance_CustomizeAuditOperationTypeFilter(object sender, CustomAuditOperationTypeFilterEventArgs e) {  
        if(e.AuditOperationType == AuditOperationType.ObjectChanged || 
            e.AuditOperationType == AuditOperationType.ObjectCreated) {
            e.SaveAuditOperation = false;
        }
    }
    // ...
}  

In a WinForms Application

File: Program.cs (Program.vb).

using DevExpress.Persistent.AuditTrail;
using static DevExpress.Persistent.AuditTrail.AuditTrailService;
// ...
public class Program {  
    public static void Main() {  
        //...  
        MySolutionWinApplication winApplication = new MySolutionWinApplication();  
        AuditTrailService.Instance.CustomizeAuditOperationTypeFilter += 
            new EventHandler<CustomAuditOperationTypeFilterEventArgs>(Instance_CustomizeAuditOperationTypeFilter);  
        //...  
    }  
    private static void Instance_CustomizeAuditOperationTypeFilter(object sender, CustomAuditOperationTypeFilterEventArgs e) {  
        if(e.AuditOperationType == AuditOperationType.ObjectChanged || 
            e.AuditOperationType == AuditOperationType.ObjectCreated) {
            e.SaveAuditOperation = false;
        }
    }
    // ...
}  

In an ASP.NET Application

File: Global.asax.cs (Global.asax.vb).

using DevExpress.Persistent.AuditTrail;
using static DevExpress.Persistent.AuditTrail.AuditTrailService;
// ...
public class Global : System.Web.HttpApplication {
    protected void Session_Start(object sender, EventArgs e) {
        //...  
        WebApplication.SetInstance(Session, new MySolutionWebApplication());  
        AuditTrailService.Instance.CustomizeAuditOperationTypeFilter += 
            new EventHandler<CustomAuditOperationTypeFilterEventArgs>(Instance_CustomizeAuditOperationTypeFilter);  
        //...  
    }  
    private static void Instance_CustomizeAuditOperationTypeFilter(object sender, CustomAuditOperationTypeFilterEventArgs e) {  
        if(e.AuditOperationType == AuditOperationType.ObjectChanged || 
            e.AuditOperationType == AuditOperationType.ObjectCreated) {
            e.SaveAuditOperation = false;
        }
    }
    // ...
} 

In a Blazor Application

File: Program.cs.

using DevExpress.Persistent.AuditTrail;
using static DevExpress.Persistent.AuditTrail.AuditTrailService;
// ...
public class Program {  
    public static void Main() {  
        //...    
        AuditTrailService.Instance.CustomizeAuditOperationTypeFilter += 
            new EventHandler<CustomAuditOperationTypeFilterEventArgs>(Instance_CustomizeAuditOperationTypeFilter);  
        CreateHostBuilder(args).Build().Run();
    }  
    private static void Instance_CustomizeAuditOperationTypeFilter(object sender, CustomAuditOperationTypeFilterEventArgs e) {  
        if(e.AuditOperationType == AuditOperationType.ObjectChanged || 
            e.AuditOperationType == AuditOperationType.ObjectCreated) {
            e.SaveAuditOperation = false;
        }
    }
    // ...
}