using Microsoft.AspNetCore.Authorization; using Sanhe.Abp.Auditing.Features; using Sanhe.Abp.Auditing.Permissions; using Sanhe.Abp.AuditLogging; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Features; namespace Sanhe.Abp.Auditing.AuditLogs { [Authorize(AuditingPermissionNames.AuditLog.Default)] [RequiresFeature(AuditingFeatureNames.Logging.AuditLog)] public class AuditLogAppService : AuditingApplicationServiceBase, IAuditLogAppService { protected IAuditLogManager AuditLogManager { get; } public AuditLogAppService(IAuditLogManager auditLogManager) { AuditLogManager = auditLogManager; } public virtual async Task GetAsync(Guid id) { var auditLog = await AuditLogManager.GetAsync(id, includeDetails: true); return ObjectMapper.Map(auditLog); } public virtual async Task> GetListAsync(AuditLogGetByPagedDto input) { var auditLogCount = await AuditLogManager .GetCountAsync(input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserId, input.UserName, input.ApplicationName, input.CorrelationId, input.ClientId, input.ClientIpAddress, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode); var auditLogs = await AuditLogManager .GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserId, input.UserName, input.ApplicationName, input.CorrelationId, input.ClientId, input.ClientIpAddress, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode, includeDetails: false); return new PagedResultDto(auditLogCount, ObjectMapper.Map, List>(auditLogs)); } [Authorize(AuditingPermissionNames.AuditLog.Delete)] public virtual async Task DeleteAsync([Required] Guid id) { await AuditLogManager.DeleteAsync(id); } } }