public AuditTrailEventDescriptor DescribeEvent(AuditTrailEventRecord record) { return(DescribeEvent(record.FullEventName) ?? AuditTrailEventDescriptor.Basic(record)); }
public ActionResult Index(PagerParameters pagerParameters, AuditTrailOrderBy?orderBy = null) { if (!_authorizer.Authorize(Permissions.ViewAuditTrail)) { return(new HttpUnauthorizedResult()); } var pager = new Pager(_services.WorkContext.CurrentSite, pagerParameters); var filters = Filters.From(Request.QueryString, this); var pageOfData = _auditTrailManager.GetRecords(pager.Page, pager.PageSize, filters, orderBy ?? AuditTrailOrderBy.DateDescending); // If there's a filter validation error, clear the results. if (!ModelState.IsValid) { pageOfData = new PageOfItems <AuditTrailEventRecord>(Enumerable.Empty <AuditTrailEventRecord>()); } var pagerShape = New.Pager(pager).TotalItemCount(pageOfData.TotalItemCount); var filterDisplay = _auditTrailManager.BuildFilterDisplay(filters); 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.FullEventName) ? eventDescriptors[record.FullEventName] : AuditTrailEventDescriptor.Basic(record) select new AuditTrailEventSummaryViewModel { Record = record, EventDescriptor = descriptor, CategoryDescriptor = descriptor.CategoryDescriptor, SummaryShape = _displayBuilder.BuildDisplay(record, "SummaryAdmin"), ActionsShape = _displayBuilder.BuildActions(record, "SummaryAdmin"), }; var viewModel = new AuditTrailViewModel { Records = recordViewModelsQuery.ToArray(), Pager = pagerShape, OrderBy = orderBy ?? AuditTrailOrderBy.DateDescending, FilterDisplay = filterDisplay }; return(View(viewModel)); }
public async Task <ActionResult> Index(PagerParameters pagerParameters, AuditTrailOrderBy?orderBy = null) { if (!await _authorizationService.AuthorizeAsync(User, AuditTrailPermissions.ViewAuditTrail)) { return(Forbid()); } var siteSettings = await _siteService.GetSiteSettingsAsync(); var pager = new Pager(pagerParameters, siteSettings.PageSize); var filters = Filters.From(QueryHelpers.ParseQuery(Request.QueryString.Value), _updateModelAccessor.ModelUpdater); var searchResult = await _auditTrailManager.GetAuditTrailEventsAsync(pager.Page, pager.PageSize, filters, orderBy ?? AuditTrailOrderBy.DateDescending); if (!_updateModelAccessor.ModelUpdater.ModelState.IsValid) { searchResult.AuditTrailEvents = Enumerable.Empty <AuditTrailEvent>(); } var pagerShape = (await _shapeFactory.New.Pager(pager)).TotalItemCount(searchResult.TotalCount); var eventDescriptors = _auditTrailManager.DescribeCategories() .SelectMany(categoryDescriptor => categoryDescriptor.Events) .ToDictionary(eventDescriptor => eventDescriptor.FullEventName); var auditTrailEventsSummaryViewModel = searchResult.AuditTrailEvents.Select(auditTrailEvent => { var eventDescriptor = eventDescriptors.ContainsKey(auditTrailEvent.FullEventName) ? eventDescriptors[auditTrailEvent.FullEventName] : AuditTrailEventDescriptor.Basic(auditTrailEvent); return(new AuditTrailEventSummaryViewModel { AuditTrailEvent = auditTrailEvent, EventDescriptor = eventDescriptor, CategoryDescriptor = eventDescriptor.CategoryDescriptor, AdditionalColumnsShapes = _auditTrailEventDisplayManager.BuildAdditionalColumnsShapesAsync(auditTrailEvent), SummaryShape = _auditTrailEventDisplayManager.BuildDisplayAsync(auditTrailEvent, "SummaryAdmin"), ActionsShape = _auditTrailEventDisplayManager.BuildActionsAsync(auditTrailEvent, "SummaryAdmin") }); }); return(View(new AuditTrailViewModel { AuditTrailEvents = auditTrailEventsSummaryViewModel, AdditionalColumnNames = await _auditTrailEventDisplayManager.BuildAdditionalColumnNamesShapesAsync(), Pager = pagerShape, OrderBy = orderBy ?? AuditTrailOrderBy.DateDescending, FilterDisplay = await _auditTrailEventDisplayManager.BuildFilterDisplayAsync(filters) })); }