Some quick changes after call with Daniel.

This commit is contained in:
Sipke Schoorstra
2014-06-17 11:35:32 -07:00
parent e658ae29f9
commit d691777a88
16 changed files with 81 additions and 86 deletions

View File

@@ -28,6 +28,7 @@ namespace Orchard.AuditTrail.Controllers {
public dynamic New { get; private set; }
public ActionResult Index(PagerParameters pagerParameters, AuditTrailFilterViewModel filterParameters) {
if(!_authorizer.Authorize(Permissions.ViewAuditTrail))
return new HttpUnauthorizedResult();
@@ -40,19 +41,21 @@ namespace Orchard.AuditTrail.Controllers {
To = _dateServices.ConvertFromLocalString(filterParameters.To.Date, filterParameters.To.Time),
}, filterParameters.OrderBy);
var pagerShape = New.Pager(pager).TotalItemCount(pageOfData.TotalItemCount);
var eventDescriptorsQuery = from c in _auditTrailManager.Describe()
from e in c.Events
select e;
var eventDescriptorsQuery =
from c in _auditTrailManager.DescribeCategories()
from e in c.Events
select e;
var eventDescriptors = eventDescriptorsQuery.ToDictionary(x => x.Event);
var recordViewModelsQuery = from record in pageOfData
let descriptor = eventDescriptors.ContainsKey(record.Event) ? eventDescriptors[record.Event] : default(AuditTrailEventDescriptor)
where descriptor != null
select new AuditTrailEventSummaryViewModel {
Record = record,
EventDescriptor = descriptor,
CategoryDescriptor = descriptor.CategoryDescriptor,
SummaryShape = _displayBuilder.BuildDisplay(record, "SummaryAdmin")
};
var recordViewModelsQuery =
from record in pageOfData
let descriptor = eventDescriptors.ContainsKey(record.Event) ? eventDescriptors[record.Event] : default(AuditTrailEventDescriptor)
where descriptor != null
select new AuditTrailEventSummaryViewModel {
Record = record,
EventDescriptor = descriptor,
CategoryDescriptor = descriptor.CategoryDescriptor,
SummaryShape = _displayBuilder.BuildDisplay(record, "SummaryAdmin")
};
var viewModel = new AuditTrailViewModel {
Records = recordViewModelsQuery.ToArray(),
@@ -68,7 +71,7 @@ namespace Orchard.AuditTrail.Controllers {
return new HttpUnauthorizedResult();
var record = _auditTrailManager.GetRecord(id);
var descriptor = _auditTrailManager.Describe(record.Event);
var descriptor = _auditTrailManager.DescribeEvent(record.Event);
var detailsShape = _displayBuilder.BuildDisplay(record, "Detail");
var viewModel = new AuditTrailDetailsViewModel {
Record = record,

View File

@@ -50,7 +50,7 @@ namespace Orchard.AuditTrail.Drivers {
FilterValue = part.Id.ToString(CultureInfo.InvariantCulture)
});
var pagerShape = shapeHelper.Pager(pager).TotalItemCount(pageOfData.TotalItemCount);
var eventDescriptors = from c in _auditTrailManager.Describe()
var eventDescriptors = from c in _auditTrailManager.DescribeCategories()
from e in c.Events
select e;
var recordViewModels = from record in pageOfData

View File

@@ -25,14 +25,15 @@ namespace Orchard.AuditTrail.Drivers {
return null;
return ContentShape("Parts_AuditTrailSettings_Edit", () => {
var descriptors = _auditTrailManager.Describe();
var descriptors = _auditTrailManager.DescribeCategories();
var eventSettings = part.EventSettings.ToList();
var viewModel = new AuditTrailSettingsViewModel {
Categories = (from categoryDescriptor in descriptors
select new AuditTrailCategorySettingsViewModel {
Category = categoryDescriptor.Category,
Name = categoryDescriptor.Name,
Events = (from eventDescriptor in categoryDescriptor.Events
Events =
(from eventDescriptor in categoryDescriptor.Events
let eventSetting = eventSettings.FirstOrDefault(x => x.EventName == eventDescriptor.Event)
select new AuditTrailEventSettingsViewModel {
Event = eventDescriptor.Event,

View File

@@ -8,7 +8,7 @@ namespace Orchard.AuditTrail.Helpers {
}
public static string GetFullyQualifiedEventName(Type providerType, string eventName) {
return String.Concat(providerType.FullName, ".", eventName);
return String.Format("{0}.{1}", providerType.FullName, eventName);
}
}
}

View File

@@ -191,7 +191,7 @@
<Compile Include="ViewModels\AuditTrailDetailsViewModel.cs" />
<Compile Include="Providers\Content\GlobalContentHandler.cs" />
<Compile Include="Models\AuditTrailEventDescriptor.cs" />
<Compile Include="Models\AuditTrailCategoryDescriptor.cs" />
<Compile Include="Services\Models\AuditTrailCategoryDescriptor.cs" />
<Compile Include="Models\DescribeContext.cs" />
<Compile Include="Models\DescribeFor.cs" />
<Compile Include="Models\AuditTrailContext.cs" />

View File

@@ -18,27 +18,27 @@ namespace Orchard.AuditTrail.Providers.Content {
}
protected override void Created(CreateContentContext context) {
RecordAuditTrail(ContentAuditTrailEventProvider.Created, context.ContentItem);
RecordAuditTrailEvent(ContentAuditTrailEventProvider.Created, context.ContentItem);
}
protected override void Updated(UpdateContentContext context) {
RecordAuditTrail(ContentAuditTrailEventProvider.Saved, context.ContentItem);
RecordAuditTrailEvent(ContentAuditTrailEventProvider.Saved, context.ContentItem);
}
protected override void Published(PublishContentContext context) {
var previousVersion = context.PreviousItemVersionRecord;
RecordAuditTrail(ContentAuditTrailEventProvider.Published, context.ContentItem, previousVersion);
RecordAuditTrailEvent(ContentAuditTrailEventProvider.Published, context.ContentItem, previousVersion);
}
protected override void Unpublished(PublishContentContext context) {
RecordAuditTrail(ContentAuditTrailEventProvider.Unpublished, context.ContentItem);
RecordAuditTrailEvent(ContentAuditTrailEventProvider.Unpublished, context.ContentItem);
}
protected override void Removed(RemoveContentContext context) {
RecordAuditTrail(ContentAuditTrailEventProvider.Removed, context.ContentItem);
RecordAuditTrailEvent(ContentAuditTrailEventProvider.Removed, context.ContentItem);
}
private void RecordAuditTrail(string eventName, IContent content, ContentItemVersionRecord previousContentItemVersion = null) {
private void RecordAuditTrailEvent(string eventName, IContent content, ContentItemVersionRecord previousContentItemVersion = null) {
var title = _contentManager.GetItemMetadata(content).DisplayText;
var properties = new Dictionary<string, object> {
@@ -56,7 +56,7 @@ namespace Orchard.AuditTrail.Providers.Content {
eventData["PreviousContentItemVersionId"] = previousContentItemVersion.Id;
}
_auditTrailManager.Record<ContentAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "content", eventFilterData: content.Id.ToString(CultureInfo.InvariantCulture));
_auditTrailManager.CreateRecord<ContentAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "content", eventFilterData: content.Id.ToString(CultureInfo.InvariantCulture));
}
}
}

View File

@@ -13,27 +13,27 @@ namespace Orchard.AuditTrail.Providers.ContentDefinition {
}
public void ContentTypeCreated(dynamic context) {
RecordContentTypeAuditTrail(ContentTypeAuditTrailEventProvider.Created, context.ContentTypeDefinition);
RecordContentTypeAuditTrailEvent(ContentTypeAuditTrailEventProvider.Created, context.ContentTypeDefinition);
}
public void ContentTypeRemoved(dynamic context) {
RecordContentTypeAuditTrail(ContentTypeAuditTrailEventProvider.Removed, context.ContentTypeDefinition);
RecordContentTypeAuditTrailEvent(ContentTypeAuditTrailEventProvider.Removed, context.ContentTypeDefinition);
}
public void ContentPartCreated(dynamic context) {
RecordContentPartAuditTrail(ContentPartAuditTrailEventProvider.Created, context.ContentPartDefinition);
RecordContentPartAuditTrailEvent(ContentPartAuditTrailEventProvider.Created, context.ContentPartDefinition);
}
public void ContentPartRemoved(dynamic context) {
RecordContentPartAuditTrail(ContentPartAuditTrailEventProvider.Removed, context.ContentPartDefinition);
RecordContentPartAuditTrailEvent(ContentPartAuditTrailEventProvider.Removed, context.ContentPartDefinition);
}
public void ContentPartAttached(dynamic context) {
RecordContentTypePartAuditTrail(ContentTypeAuditTrailEventProvider.PartAdded, context.ContentTypeName, context.ContentPartName);
RecordContentTypePartAuditTrailEvent(ContentTypeAuditTrailEventProvider.PartAdded, context.ContentTypeName, context.ContentPartName);
}
public void ContentPartDetached(dynamic context) {
RecordContentTypePartAuditTrail(ContentTypeAuditTrailEventProvider.PartRemoved, context.ContentTypeName, context.ContentPartName);
RecordContentTypePartAuditTrailEvent(ContentTypeAuditTrailEventProvider.PartRemoved, context.ContentTypeName, context.ContentPartName);
}
public void ContentFieldAttached(dynamic context) {
@@ -43,7 +43,7 @@ namespace Orchard.AuditTrail.Providers.ContentDefinition {
{"ContentFieldTypeName", context.ContentFieldTypeName},
{"ContentFieldDisplayName", context.ContentFieldDisplayName}
};
_auditTrailManager.Record<ContentPartAuditTrailEventProvider>(ContentPartAuditTrailEventProvider.FieldAdded, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: context.ContentPartName);
_auditTrailManager.CreateRecord<ContentPartAuditTrailEventProvider>(ContentPartAuditTrailEventProvider.FieldAdded, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: context.ContentPartName);
}
public void ContentFieldDetached(dynamic context) {
@@ -51,30 +51,30 @@ namespace Orchard.AuditTrail.Providers.ContentDefinition {
{"ContentPartName", context.ContentPartName},
{"ContentFieldName", context.ContentFieldName}
};
_auditTrailManager.Record<ContentPartAuditTrailEventProvider>(ContentPartAuditTrailEventProvider.FieldRemoved, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: context.ContentPartName);
_auditTrailManager.CreateRecord<ContentPartAuditTrailEventProvider>(ContentPartAuditTrailEventProvider.FieldRemoved, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: context.ContentPartName);
}
private void RecordContentTypeAuditTrail(string eventName, ContentTypeDefinition contentTypeDefinition) {
private void RecordContentTypeAuditTrailEvent(string eventName, ContentTypeDefinition contentTypeDefinition) {
var eventData = new Dictionary<string, object> {
{"ContentTypeName", contentTypeDefinition.Name},
{"ContentTypeDisplayName", contentTypeDefinition.DisplayName},
};
_auditTrailManager.Record<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeDefinition.Name);
_auditTrailManager.CreateRecord<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeDefinition.Name);
}
private void RecordContentPartAuditTrail(string eventName, ContentPartDefinition contentPartDefinition) {
private void RecordContentPartAuditTrailEvent(string eventName, ContentPartDefinition contentPartDefinition) {
var eventData = new Dictionary<string, object> {
{"ContentPartName", contentPartDefinition.Name}
};
_auditTrailManager.Record<ContentPartAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: contentPartDefinition.Name);
_auditTrailManager.CreateRecord<ContentPartAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: contentPartDefinition.Name);
}
private void RecordContentTypePartAuditTrail(string eventName, string contentTypeName, string contentPartName) {
private void RecordContentTypePartAuditTrailEvent(string eventName, string contentTypeName, string contentPartName) {
var eventData = new Dictionary<string, object> {
{"ContentTypeName", contentTypeName},
{"ContentPartName", contentPartName}
};
_auditTrailManager.Record<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeName);
_auditTrailManager.CreateRecord<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeName);
}
}
}

View File

@@ -51,11 +51,11 @@ namespace Orchard.AuditTrail.Providers.ContentDefinition {
}
private void RecordContentTypeAuditTrail(string eventName, IDictionary<string, object> eventData, string contentTypeName) {
_auditTrailManager.Record<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeName);
_auditTrailManager.CreateRecord<ContentTypeAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contenttype", eventFilterData: contentTypeName);
}
private void RecordContentPartAuditTrail(string eventName, IDictionary<string, object> eventData, string contentPartName) {
_auditTrailManager.Record<ContentPartAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: contentPartName);
_auditTrailManager.CreateRecord<ContentPartAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "contentpart", eventFilterData: contentPartName);
}
}
}

View File

@@ -13,11 +13,11 @@ namespace Orchard.AuditTrail.Providers.Role {
}
public void Created(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.Created, context.Role.Name);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.Created, context.Role.Name);
}
public void Removed(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.Removed, context.Role.Name);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.Removed, context.Role.Name);
}
public void Renamed(dynamic context) {
@@ -27,44 +27,35 @@ namespace Orchard.AuditTrail.Providers.Role {
{"NewRoleName", (string)context.NewRoleName},
};
RecordAuditTrail(RoleAuditTrailEventProvider.Renamed, context.Role.Name, properties: null, eventData:eventData);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.Renamed, context.Role.Name, properties: null, eventData:eventData);
}
public void PermissionAdded(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.PermissionAdded, context.Role.Name, context.Permission.Name);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.PermissionAdded, (string) context.Role.Name, (IUser) context.Permission.Name);
}
public void PermissionRemoved(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.PermissionRemoved, context.Role.Name, context.Permission.Name);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.PermissionRemoved, (string) context.Role.Name, (IUser) context.Permission.Name);
}
public void UserAdded(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.UserAdded, context.Role.Name, context.User);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.UserAdded, (string) context.Role.Name, (IUser) context.User);
}
public void UserRemoved(dynamic context) {
RecordAuditTrail(RoleAuditTrailEventProvider.UserRemoved, context.Role.Name, context.User);
RecordAuditTrailEvent(RoleAuditTrailEventProvider.UserRemoved, (string) context.Role.Name, (IUser) context.User);
}
private void RecordAuditTrail(string eventName, string roleName) {
private void RecordAuditTrailEvent(string eventName, string roleName) {
var eventData = new Dictionary<string, object> {
{"RoleName", roleName}
};
RecordAuditTrail(eventName, roleName, properties: null, eventData: eventData);
}
private void RecordAuditTrail(string eventName, string roleName, string permissionName) {
var eventData = new Dictionary<string, object> {
{"RoleName", roleName},
{"PermissionName", permissionName}
};
RecordAuditTrail(eventName, roleName, properties: null, eventData: eventData);
RecordAuditTrailEvent(eventName, roleName, properties: null, eventData: eventData);
}
private void RecordAuditTrail(string eventName, string roleName, IUser user) {
private void RecordAuditTrailEvent(string eventName, string roleName, IUser user) {
var properties = new Dictionary<string, object> {
{"User", user}
@@ -75,11 +66,11 @@ namespace Orchard.AuditTrail.Providers.Role {
{"UserName", user.UserName}
};
RecordAuditTrail(eventName, roleName, properties, eventData);
RecordAuditTrailEvent(eventName, roleName, properties, eventData);
}
private void RecordAuditTrail(string eventName, string roleName, IDictionary<string, object> properties, IDictionary<string, object> eventData) {
_auditTrailManager.Record<RoleAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "role", eventFilterData: roleName);
private void RecordAuditTrailEvent(string eventName, string roleName, IDictionary<string, object> properties, IDictionary<string, object> eventData) {
_auditTrailManager.CreateRecord<RoleAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "role", eventFilterData: roleName);
}
}
}

View File

@@ -25,7 +25,7 @@ namespace Orchard.AuditTrail.Providers.User {
{"UserName", userNameOrEmail}
};
_auditTrailManager.Record<UserAuditTrailEventProvider>(UserAuditTrailEventProvider.LogInFailed, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "user", eventFilterData: userNameOrEmail);
_auditTrailManager.CreateRecord<UserAuditTrailEventProvider>(UserAuditTrailEventProvider.LogInFailed, _wca.GetContext().CurrentUser, properties: null, eventData: eventData, eventFilterKey: "user", eventFilterData: userNameOrEmail);
}
public void ChangedPassword(IUser user) {
@@ -43,7 +43,7 @@ namespace Orchard.AuditTrail.Providers.User {
{"UserName", user.UserName}
};
_auditTrailManager.Record<UserAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "user", eventFilterData: user.UserName);
_auditTrailManager.CreateRecord<UserAuditTrailEventProvider>(eventName, _wca.GetContext().CurrentUser, properties, eventData, eventFilterKey: "user", eventFilterData: user.UserName);
}
}
}

View File

@@ -18,7 +18,7 @@ namespace Orchard.AuditTrail.Services {
public dynamic BuildDisplay(AuditTrailEventRecord record, string displayType) {
var eventData = _serializer.Deserialize(record.EventData);
var descriptor = _auditTrailManager.Describe(record.Event);
var descriptor = _auditTrailManager.DescribeEvent(record.Event);
var auditTrailEventShape = New.AuditTrailEvent(Record: record, EventData: eventData, Descriptor: descriptor);
var metaData = (ShapeMetadata)auditTrailEventShape.Metadata;
metaData.DisplayType = displayType;

View File

@@ -56,12 +56,12 @@ namespace Orchard.AuditTrail.Services {
}
switch (orderBy) {
default:
query = query.OrderByDescending(x => x.CreatedUtc).ThenByDescending(x => x.Id);
break;
case AuditTrailOrderBy.EventAscending:
query = query.OrderBy(x => x.Event).ThenByDescending(x => x.Id);
break;
default:
query = query.OrderByDescending(x => x.CreatedUtc).ThenByDescending(x => x.Id);
break;
}
var totalItemCount = query.Count();
@@ -79,9 +79,9 @@ namespace Orchard.AuditTrail.Services {
return _auditTrailRepository.Get(id);
}
public AuditTrailEventRecordResult Record<T>(string eventName, IUser user, IDictionary<string, object> properties = null, IDictionary<string, object> eventData = null, string eventFilterKey = null, string eventFilterData = null) where T:IAuditTrailEventProvider {
var eventDescriptor = Describe<T>(eventName);
if(!IsEnabled(eventDescriptor))
public AuditTrailEventRecordResult CreateRecord<T>(string eventName, IUser user, IDictionary<string, object> properties = null, IDictionary<string, object> eventData = null, string eventFilterKey = null, string eventFilterData = null) where T:IAuditTrailEventProvider {
var eventDescriptor = DescribeEvent<T>(eventName);
if(!IsEventEnabled(eventDescriptor))
return new AuditTrailEventRecordResult {
Record = null,
IsDisabled = true
@@ -119,7 +119,7 @@ namespace Orchard.AuditTrail.Services {
};
}
private bool IsEnabled(AuditTrailEventDescriptor eventDescriptor) {
private bool IsEventEnabled(AuditTrailEventDescriptor eventDescriptor) {
var settingsDictionary = _cacheManager.Get("AuditTrail.EventSettings", context => {
context.Monitor(_signals.When("AuditTrail.EventSettings"));
return _siteService.GetSiteSettings().As<AuditTrailSettingsPart>().EventSettings.ToDictionary(x => x.EventName);
@@ -128,19 +128,19 @@ namespace Orchard.AuditTrail.Services {
return setting != null ? setting.IsEnabled : eventDescriptor.IsEnabledByDefault;
}
public IEnumerable<AuditTrailCategoryDescriptor> Describe() {
public IEnumerable<AuditTrailCategoryDescriptor> DescribeCategories() {
var context = new DescribeContext();
_providers.Describe(context);
return context.Describe();
}
public AuditTrailEventDescriptor Describe<T>(string eventName) where T:IAuditTrailEventProvider {
public AuditTrailEventDescriptor DescribeEvent<T>(string eventName) where T:IAuditTrailEventProvider {
var fullyQualifiedEventName = EventNameHelper.GetFullyQualifiedEventName<T>(eventName);
return Describe(fullyQualifiedEventName);
return DescribeEvent(fullyQualifiedEventName);
}
public AuditTrailEventDescriptor Describe(string fullyQualifiedEventName) {
var categoryDescriptors = Describe();
public AuditTrailEventDescriptor DescribeEvent(string fullyQualifiedEventName) {
var categoryDescriptors = DescribeCategories();
var eventDescriptorQuery = from c in categoryDescriptors
from e in c.Events
where e.Event == fullyQualifiedEventName
@@ -148,7 +148,7 @@ namespace Orchard.AuditTrail.Services {
var eventDescriptors = eventDescriptorQuery.ToArray();
if (!eventDescriptors.Any()) {
throw new ArgumentException(String.Format("No event named '{0}' exists.", fullyQualifiedEventName));
throw new ArgumentException(String.Format("No event named '{0}' exists.", fullyQualifiedEventName), "fullyQualifiedEventName");
}
return eventDescriptors.First();

View File

@@ -38,7 +38,7 @@ namespace Orchard.AuditTrail.Services {
Logger.Debug("Starting audit trail trimming operation.");
var deletedRecords = _auditTrailManager.Trim(TimeSpan.FromDays(Settings.Threshold));
Logger.Debug("Audit trail trimming operation completed. {0} Records were deleted.", deletedRecords.Count());
Logger.Debug("Audit trail trimming operation completed. {0} records were deleted.", deletedRecords.Count());
Settings.LastRunUtc = _clock.UtcNow;
}
catch (Exception ex) {

View File

@@ -13,7 +13,7 @@ namespace Orchard.AuditTrail.Services {
return xml.ToString(SaveOptions.DisableFormatting);
}
catch (Exception ex) {
Logger.Error(ex, "Error during serialization of eventData");
Logger.Error(ex, "Error during serialization of event data.");
}
return null;
}
@@ -28,7 +28,7 @@ namespace Orchard.AuditTrail.Services {
return JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
}
catch (Exception ex) {
Logger.Error(ex, "Error during deserialization of eventData");
Logger.Error(ex, "Error during deserialization of event data.");
}
return new Dictionary<string, object>();
}

View File

@@ -34,13 +34,13 @@ namespace Orchard.AuditTrail.Services {
/// <param name="eventFilterKey">The name of a custom key to use when filtering events.</param>
/// <param name="eventFilterData">The value of a custom filter key to filter on.</param>
/// <returns>Returns the created audit trail event record if the specified event was not disabled.</returns>
AuditTrailEventRecordResult Record<T>(string eventName, IUser user, IDictionary<string, object> properties = null, IDictionary<string, object> eventData = null, string eventFilterKey = null, string eventFilterData = null) where T : IAuditTrailEventProvider;
AuditTrailEventRecordResult CreateRecord<T>(string eventName, IUser user, IDictionary<string, object> properties = null, IDictionary<string, object> eventData = null, string eventFilterKey = null, string eventFilterData = null) where T : IAuditTrailEventProvider;
/// <summary>
/// Describes all audit trail events provided by the system.
/// </summary>
/// <returns>Returns a list of audit trail category descriptors.</returns>
IEnumerable<AuditTrailCategoryDescriptor> Describe();
IEnumerable<AuditTrailCategoryDescriptor> DescribeCategories();
/// <summary>
/// Describes a single audit trail event.
@@ -48,14 +48,14 @@ namespace Orchard.AuditTrail.Services {
/// <typeparam name="T">The scope of the specified event name.</typeparam>
/// <param name="eventName">The shorthand name of the event.</param>
/// <returns>Returns a single audit trail event descriptor.</returns>
AuditTrailEventDescriptor Describe<T>(string eventName) where T : IAuditTrailEventProvider;
AuditTrailEventDescriptor DescribeEvent<T>(string eventName) where T : IAuditTrailEventProvider;
/// <summary>
/// Describes a single audit trail event.
/// </summary>
/// <param name="fullyQualifiedEventName">The fully qualified event name to describe.</param>
/// <returns>Returns a single audit trail event descriptor.</returns>
AuditTrailEventDescriptor Describe(string fullyQualifiedEventName);
AuditTrailEventDescriptor DescribeEvent(string fullyQualifiedEventName);
/// <summary>
/// Trims the audit trail by deleting all records older than the specified threshold.