/// <summary> /// Handle /// </summary> /// <param name="query"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task <QueryResponse> Handle(GetQuery query, CancellationToken cancellationToken) { QueryResponse response = new QueryResponse(); AuditFilterSpecification specification = new AuditFilterSpecification(query.Id); IEnumerable <Core.Entities.Audit> entities = await _repo.GetItemsAsync(specification); // Map audit records to entity-specific audit model response.Resource = entities.Select(x => _mapper.Map <ToDoItemAuditModel>(x)); return(response); }
public async Task <IResult <string> > ExportToExcelAsync(string userId, string searchString = "", bool searchInOldValues = false, bool searchInNewValues = false) { var auditSpec = new AuditFilterSpecification(userId, searchString, searchInOldValues, searchInNewValues); var trails = await _context.AuditTrails .Specify(auditSpec) .OrderByDescending(a => a.DateTime) .ToListAsync(); var data = await _excelService.ExportAsync(trails, sheetName : _localizer["Audit trails"], mappers : new Dictionary <string, Func <Audit, object> > { { _localizer["Table Name"], item => item.TableName }, { _localizer["Type"], item => item.Type }, { _localizer["Date Time (Local)"], item => DateTime.SpecifyKind(item.DateTime, DateTimeKind.Utc).ToLocalTime().ToString("G", CultureInfo.CurrentCulture) }, { _localizer["Date Time (UTC)"], item => item.DateTime.ToString("G", CultureInfo.CurrentCulture) }, { _localizer["Primary Key"], item => item.PrimaryKey }, { _localizer["Old Values"], item => item.OldValues }, { _localizer["New Values"], item => item.NewValues }, }); return(await Result <string> .SuccessAsync(data : data)); }