Table of Contents

Interface IDataAuditApi

Namespace: Casewhere.Runtime.DSL.Api
Assembly: Casewhere.Runtime.dll

Provides methods for adding custom logs.

public interface IDataAuditApi : IDslApi

Implements

IDslApi

Extension Methods

ObjectExtension.ConvertToBsonValue(object), EnumExtensions.DeepClone<IDataAuditApi>(IDataAuditApi)

Examples

var dataAuditApi = ctx.Use<IDataAuditApi>();
var correlationId = "RootDataClass/e7a7d4fc-9f0b-4496-be13-aa500067a8dd";
var data = new { Description = "To Description" };
var rootDOId = "RootDataClass/e7a7d4fc-9f0b-4496-be13-aa500067a8dd";
dataAuditApi.Log(rootDOId, "test manually audit log", correlationId, new {Description = "New Description"});
var relatedDOId = "RelatedDataClass/f97b09f9-896b-44d5-8885-aa50001be638";
dataAuditApi.Log(relatedDOId, "updated pool period", correlationId, new {SomeField = "Some thing is changed"});

Methods

Enumerate(DataAuditEnumerationQuery, CancellationToken)

Enumerate Audit Logs.

IEnumerable<DataAuditLog> Enumerate(DataAuditEnumerationQuery query, CancellationToken token = default)

Parameters

query DataAuditEnumerationQuery

The enumeration query.

token CancellationToken

An instance of CancellationToken. If it isn't passed, the default value will be assigned.

Returns

IEnumerable<DataAuditLog>

Enumeration of Audit Logs.

Examples

var dataAuditApi = ctx.Use<IDataAuditApi>();
var relatedDOId = "RelatedDataClass/f97b09f9-896b-44d5-8885-aa50001be638";
var filter = FilterBuilder.Create().Eq("DataObjectId", relatedDOId).Build();
var query = DataAuditEnumerationQuery
                    .FilterBy(filter)
                    .Paging(0,10);
foreach (var dataAuditLog in dataAuditApi.Enumerate(query)) 
{
    Log.Info("EnumerateAuditLog - {@dataAuditLog}", dataAuditLog);
}

HardDelete(params string[])

Hard delete audit logs by DataObjectId.

void HardDelete(params string[] dataObjectIds)

Parameters

dataObjectIds string[]

List DataObjectId

Examples

var dataAuditApi = ctx.Use<IDataAuditApi>();
var ids = new string[]{ "DataClassName/711d41a0-1eff-44da-8105-b0f1006e1fef", "DataClassName/fff094f7-d9a6-445c-984d-b0e000b88225" };
dataAuditApi.HardDelete(ids);

Log(string, string, string, object)

Manually log a log entry to Audit log system.

void Log(string id, string eventName, string correlationId = "", object data = null)

Parameters

id string

Id of the ActualData Object to be logged.

eventName string

correlationId string

Log to correlation Id

data object

ActualData to be logged.

Search(DataAuditApiQuery)

Search Audit Logs.

DataAuditQueryResult Search(DataAuditApiQuery query)

Parameters

query DataAuditApiQuery

The search query.

Returns

DataAuditQueryResult

Collection of Audit Logs.

Examples

var dataAuditApi = ctx.Use<IDataAuditApi>();
var relatedDOId = "RelatedDataClass/f97b09f9-896b-44d5-8885-aa50001be638";
var filter = FilterBuilder.Create().Eq("DataObjectId", relatedDOId).Build();
var result = dataAuditApi.Search(DataAuditApiQuery.FilterBy(filter));

Log.Info("Total: {Total}", result.Total);
foreach(var auditLog in result.Data)
    Log.Info("{AuditLog}", auditLog);