AuditLoggingAppService.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using BaseService.Systems.AuditLoggingManagement.Dto;
  2. using BaseService.Permissions;
  3. using Microsoft.AspNetCore.Authorization;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Threading.Tasks;
  7. using Volo.Abp.Application.Dtos;
  8. using Volo.Abp.Application.Services;
  9. using Volo.Abp.AuditLogging;
  10. namespace BaseService.Systems.AuditLoggingManagement
  11. {
  12. [Authorize(BaseServicePermissions.AuditLogging.Default)]
  13. public class AuditLoggingAppService : ApplicationService, IAuditLoggingAppService
  14. {
  15. private readonly IAuditLogRepository _auditLogRepository;
  16. public AuditLoggingAppService(
  17. IAuditLogRepository auditLogRepository)
  18. {
  19. _auditLogRepository = auditLogRepository;
  20. }
  21. public async Task<AuditLogDto> Get(Guid id)
  22. {
  23. var auditLog = await _auditLogRepository.GetAsync(id);
  24. return ObjectMapper.Map<AuditLog, AuditLogDto>(auditLog);
  25. }
  26. public async Task<PagedResultDto<AuditLogDto>> GetAll(GetAuditLogsInput input)
  27. {
  28. var count = await _auditLogRepository.GetCountAsync(httpMethod: input.HttpMethod, url: input.Url,
  29. userName: input.UserName, applicationName: input.ApplicationName, correlationId: input.CorrelationId, maxExecutionDuration: input.MaxExecutionDuration,
  30. minExecutionDuration: input.MinExecutionDuration, hasException: input.HasException, httpStatusCode: input.HttpStatusCode);
  31. var list = await _auditLogRepository.GetListAsync(sorting: input.Sorting,maxResultCount: input.MaxResultCount, skipCount: input.SkipCount, httpMethod: input.HttpMethod, url: input.Url,
  32. userName: input.UserName, applicationName: input.ApplicationName, correlationId: input.CorrelationId, maxExecutionDuration: input.MaxExecutionDuration,
  33. minExecutionDuration: input.MinExecutionDuration, hasException: input.HasException, httpStatusCode: input.HttpStatusCode);
  34. return new PagedResultDto<AuditLogDto>(
  35. count,
  36. ObjectMapper.Map<List<AuditLog>, List<AuditLogDto>>(list)
  37. );
  38. }
  39. public async Task<GetAverageExecutionDurationPerDayOutput> GetAverageExecutionDurationPerDay(GetAverageExecutionDurationPerDayInput input)
  40. {
  41. var data = await _auditLogRepository.GetAverageExecutionDurationPerDayAsync(input.StartDate, input.EndDate);
  42. return new GetAverageExecutionDurationPerDayOutput()
  43. {
  44. Data = data
  45. };
  46. }
  47. }
  48. }