Example #1
0
            /// <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);
            }
Example #2
0
        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));
        }